@orchestr-sh/orchestr 1.5.10 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/README.md +433 -936
  2. package/dist/Console/Command.d.ts +59 -0
  3. package/dist/Console/Command.d.ts.map +1 -0
  4. package/dist/Console/Command.js +68 -0
  5. package/dist/Console/Command.js.map +1 -0
  6. package/dist/Console/Commands/MakeMigrationCommand.d.ts +15 -0
  7. package/dist/Console/Commands/MakeMigrationCommand.d.ts.map +1 -0
  8. package/dist/Console/Commands/MakeMigrationCommand.js +41 -0
  9. package/dist/Console/Commands/MakeMigrationCommand.js.map +1 -0
  10. package/dist/Console/Commands/MakeSeederCommand.d.ts +23 -0
  11. package/dist/Console/Commands/MakeSeederCommand.d.ts.map +1 -0
  12. package/dist/Console/Commands/MakeSeederCommand.js +109 -0
  13. package/dist/Console/Commands/MakeSeederCommand.js.map +1 -0
  14. package/dist/Console/Commands/MigrateCommand.d.ts +15 -0
  15. package/dist/Console/Commands/MigrateCommand.d.ts.map +1 -0
  16. package/dist/Console/Commands/MigrateCommand.js +48 -0
  17. package/dist/Console/Commands/MigrateCommand.js.map +1 -0
  18. package/dist/Console/Commands/MigrateFreshCommand.d.ts +15 -0
  19. package/dist/Console/Commands/MigrateFreshCommand.d.ts.map +1 -0
  20. package/dist/Console/Commands/MigrateFreshCommand.js +54 -0
  21. package/dist/Console/Commands/MigrateFreshCommand.js.map +1 -0
  22. package/dist/Console/Commands/MigrateRefreshCommand.d.ts +15 -0
  23. package/dist/Console/Commands/MigrateRefreshCommand.d.ts.map +1 -0
  24. package/dist/Console/Commands/MigrateRefreshCommand.js +52 -0
  25. package/dist/Console/Commands/MigrateRefreshCommand.js.map +1 -0
  26. package/dist/Console/Commands/MigrateResetCommand.d.ts +15 -0
  27. package/dist/Console/Commands/MigrateResetCommand.d.ts.map +1 -0
  28. package/dist/Console/Commands/MigrateResetCommand.js +46 -0
  29. package/dist/Console/Commands/MigrateResetCommand.js.map +1 -0
  30. package/dist/Console/Commands/MigrateRollbackCommand.d.ts +15 -0
  31. package/dist/Console/Commands/MigrateRollbackCommand.d.ts.map +1 -0
  32. package/dist/Console/Commands/MigrateRollbackCommand.js +49 -0
  33. package/dist/Console/Commands/MigrateRollbackCommand.js.map +1 -0
  34. package/dist/Console/Commands/MigrateStatusCommand.d.ts +15 -0
  35. package/dist/Console/Commands/MigrateStatusCommand.d.ts.map +1 -0
  36. package/dist/Console/Commands/MigrateStatusCommand.js +58 -0
  37. package/dist/Console/Commands/MigrateStatusCommand.js.map +1 -0
  38. package/dist/Console/Commands/SeedCommand.d.ts +15 -0
  39. package/dist/Console/Commands/SeedCommand.d.ts.map +1 -0
  40. package/dist/Console/Commands/SeedCommand.js +44 -0
  41. package/dist/Console/Commands/SeedCommand.js.map +1 -0
  42. package/dist/Console/ConsoleKernel.d.ts +45 -0
  43. package/dist/Console/ConsoleKernel.d.ts.map +1 -0
  44. package/dist/Console/ConsoleKernel.js +109 -0
  45. package/dist/Console/ConsoleKernel.js.map +1 -0
  46. package/dist/Console/orchestr.d.ts +8 -0
  47. package/dist/Console/orchestr.d.ts.map +1 -0
  48. package/dist/Console/orchestr.js +45 -0
  49. package/dist/Console/orchestr.js.map +1 -0
  50. package/dist/Database/Ensemble/Concerns/HasDynamicRelations.d.ts +5 -0
  51. package/dist/Database/Ensemble/Concerns/HasDynamicRelations.d.ts.map +1 -1
  52. package/dist/Database/Ensemble/Concerns/HasDynamicRelations.js.map +1 -1
  53. package/dist/Database/Ensemble/Concerns/HasRelationships.d.ts +20 -0
  54. package/dist/Database/Ensemble/Concerns/HasRelationships.d.ts.map +1 -1
  55. package/dist/Database/Ensemble/Concerns/HasRelationships.js +57 -0
  56. package/dist/Database/Ensemble/Concerns/HasRelationships.js.map +1 -1
  57. package/dist/Database/Ensemble/Relations/MorphMany.d.ts +97 -0
  58. package/dist/Database/Ensemble/Relations/MorphMany.d.ts.map +1 -0
  59. package/dist/Database/Ensemble/Relations/MorphMany.js +189 -0
  60. package/dist/Database/Ensemble/Relations/MorphMany.js.map +1 -0
  61. package/dist/Database/Ensemble/Relations/MorphMap.d.ts +59 -0
  62. package/dist/Database/Ensemble/Relations/MorphMap.d.ts.map +1 -0
  63. package/dist/Database/Ensemble/Relations/MorphMap.js +84 -0
  64. package/dist/Database/Ensemble/Relations/MorphMap.js.map +1 -0
  65. package/dist/Database/Ensemble/Relations/MorphOne.d.ts +93 -0
  66. package/dist/Database/Ensemble/Relations/MorphOne.d.ts.map +1 -0
  67. package/dist/Database/Ensemble/Relations/MorphOne.js +179 -0
  68. package/dist/Database/Ensemble/Relations/MorphOne.js.map +1 -0
  69. package/dist/Database/Ensemble/Relations/MorphTo.d.ts +98 -0
  70. package/dist/Database/Ensemble/Relations/MorphTo.d.ts.map +1 -0
  71. package/dist/Database/Ensemble/Relations/MorphTo.js +214 -0
  72. package/dist/Database/Ensemble/Relations/MorphTo.js.map +1 -0
  73. package/dist/Database/Ensemble/Relations/MorphToMany.d.ts +73 -0
  74. package/dist/Database/Ensemble/Relations/MorphToMany.d.ts.map +1 -0
  75. package/dist/Database/Ensemble/Relations/MorphToMany.js +164 -0
  76. package/dist/Database/Ensemble/Relations/MorphToMany.js.map +1 -0
  77. package/dist/Database/Ensemble/Relations/MorphedByMany.d.ts +29 -0
  78. package/dist/Database/Ensemble/Relations/MorphedByMany.d.ts.map +1 -0
  79. package/dist/Database/Ensemble/Relations/MorphedByMany.js +58 -0
  80. package/dist/Database/Ensemble/Relations/MorphedByMany.js.map +1 -0
  81. package/dist/Database/Ensemble/Relations/index.d.ts +6 -0
  82. package/dist/Database/Ensemble/Relations/index.d.ts.map +1 -1
  83. package/dist/Database/Ensemble/Relations/index.js +14 -1
  84. package/dist/Database/Ensemble/Relations/index.js.map +1 -1
  85. package/dist/Database/Migrations/Blueprint.d.ts +166 -0
  86. package/dist/Database/Migrations/Blueprint.d.ts.map +1 -0
  87. package/dist/Database/Migrations/Blueprint.js +318 -0
  88. package/dist/Database/Migrations/Blueprint.js.map +1 -0
  89. package/dist/Database/Migrations/ColumnDefinition.d.ts +62 -0
  90. package/dist/Database/Migrations/ColumnDefinition.d.ts.map +1 -0
  91. package/dist/Database/Migrations/ColumnDefinition.js +95 -0
  92. package/dist/Database/Migrations/ColumnDefinition.js.map +1 -0
  93. package/dist/Database/Migrations/ForeignKeyDefinition.d.ts +32 -0
  94. package/dist/Database/Migrations/ForeignKeyDefinition.d.ts.map +1 -0
  95. package/dist/Database/Migrations/ForeignKeyDefinition.js +50 -0
  96. package/dist/Database/Migrations/ForeignKeyDefinition.js.map +1 -0
  97. package/dist/Database/Migrations/Migration.d.ts +17 -0
  98. package/dist/Database/Migrations/Migration.d.ts.map +1 -0
  99. package/dist/Database/Migrations/Migration.js +12 -0
  100. package/dist/Database/Migrations/Migration.js.map +1 -0
  101. package/dist/Database/Migrations/MigrationCreator.d.ts +42 -0
  102. package/dist/Database/Migrations/MigrationCreator.d.ts.map +1 -0
  103. package/dist/Database/Migrations/MigrationCreator.js +184 -0
  104. package/dist/Database/Migrations/MigrationCreator.js.map +1 -0
  105. package/dist/Database/Migrations/MigrationRepository.d.ts +65 -0
  106. package/dist/Database/Migrations/MigrationRepository.d.ts.map +1 -0
  107. package/dist/Database/Migrations/MigrationRepository.js +135 -0
  108. package/dist/Database/Migrations/MigrationRepository.js.map +1 -0
  109. package/dist/Database/Migrations/Migrator.d.ts +84 -0
  110. package/dist/Database/Migrations/Migrator.d.ts.map +1 -0
  111. package/dist/Database/Migrations/Migrator.js +239 -0
  112. package/dist/Database/Migrations/Migrator.js.map +1 -0
  113. package/dist/Database/Migrations/SchemaBuilder.d.ts +136 -0
  114. package/dist/Database/Migrations/SchemaBuilder.d.ts.map +1 -0
  115. package/dist/Database/Migrations/SchemaBuilder.js +515 -0
  116. package/dist/Database/Migrations/SchemaBuilder.js.map +1 -0
  117. package/dist/Database/Seeders/Seeder.d.ts +29 -0
  118. package/dist/Database/Seeders/Seeder.d.ts.map +1 -0
  119. package/dist/Database/Seeders/Seeder.js +41 -0
  120. package/dist/Database/Seeders/Seeder.js.map +1 -0
  121. package/dist/Database/Seeders/SeederRunner.d.ts +41 -0
  122. package/dist/Database/Seeders/SeederRunner.d.ts.map +1 -0
  123. package/dist/Database/Seeders/SeederRunner.js +134 -0
  124. package/dist/Database/Seeders/SeederRunner.js.map +1 -0
  125. package/dist/index.d.ts +27 -2
  126. package/dist/index.d.ts.map +1 -1
  127. package/dist/index.js +58 -1
  128. package/dist/index.js.map +1 -1
  129. package/package.json +4 -1
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ /**
3
+ * MigrationCreator
4
+ *
5
+ * Creates new migration files from stubs
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.MigrationCreator = void 0;
42
+ const fs = __importStar(require("fs"));
43
+ const path = __importStar(require("path"));
44
+ class MigrationCreator {
45
+ customStubPath;
46
+ constructor(customStubPath) {
47
+ this.customStubPath = customStubPath;
48
+ }
49
+ /**
50
+ * Create a new migration file
51
+ */
52
+ async create(name, migrationPath, table, create = false) {
53
+ this.ensureMigrationDirectoryExists(migrationPath);
54
+ const fileName = this.getDatePrefix() + '_' + name + '.ts';
55
+ const filePath = path.join(migrationPath, fileName);
56
+ const stub = this.getStub(table, create);
57
+ const populated = this.populateStub(stub, table);
58
+ fs.writeFileSync(filePath, populated);
59
+ return filePath;
60
+ }
61
+ /**
62
+ * Get the migration stub
63
+ */
64
+ getStub(table, create = false) {
65
+ if (table && create) {
66
+ return this.getCreateStub();
67
+ }
68
+ if (table) {
69
+ return this.getUpdateStub();
70
+ }
71
+ return this.getBlankStub();
72
+ }
73
+ /**
74
+ * Get the blank migration stub
75
+ */
76
+ getBlankStub() {
77
+ return `import { Migration } from '@orchestr-sh/orchestr';
78
+ import { Schema } from '@orchestr-sh/orchestr';
79
+
80
+ export default class extends Migration {
81
+ /**
82
+ * Run the migrations
83
+ */
84
+ async up(schema: Schema): Promise<void> {
85
+ //
86
+ }
87
+
88
+ /**
89
+ * Reverse the migrations
90
+ */
91
+ async down(schema: Schema): Promise<void> {
92
+ //
93
+ }
94
+ }
95
+ `;
96
+ }
97
+ /**
98
+ * Get the create table stub
99
+ */
100
+ getCreateStub() {
101
+ return `import { Migration } from '@orchestr-sh/orchestr';
102
+ import { Schema } from '@orchestr-sh/orchestr';
103
+
104
+ export default class extends Migration {
105
+ /**
106
+ * Run the migrations
107
+ */
108
+ async up(schema: Schema): Promise<void> {
109
+ await schema.create('{{table}}', (table) => {
110
+ table.id();
111
+ table.timestamps();
112
+ });
113
+ }
114
+
115
+ /**
116
+ * Reverse the migrations
117
+ */
118
+ async down(schema: Schema): Promise<void> {
119
+ await schema.dropIfExists('{{table}}');
120
+ }
121
+ }
122
+ `;
123
+ }
124
+ /**
125
+ * Get the update table stub
126
+ */
127
+ getUpdateStub() {
128
+ return `import { Migration } from '@orchestr-sh/orchestr';
129
+ import { Schema } from '@orchestr-sh/orchestr';
130
+
131
+ export default class extends Migration {
132
+ /**
133
+ * Run the migrations
134
+ */
135
+ async up(schema: Schema): Promise<void> {
136
+ await schema.table('{{table}}', (table) => {
137
+ //
138
+ });
139
+ }
140
+
141
+ /**
142
+ * Reverse the migrations
143
+ */
144
+ async down(schema: Schema): Promise<void> {
145
+ await schema.table('{{table}}', (table) => {
146
+ //
147
+ });
148
+ }
149
+ }
150
+ `;
151
+ }
152
+ /**
153
+ * Populate the stub with table name
154
+ */
155
+ populateStub(stub, table) {
156
+ if (table) {
157
+ return stub.replace(/\{\{table\}\}/g, table);
158
+ }
159
+ return stub;
160
+ }
161
+ /**
162
+ * Get the date prefix for the migration
163
+ */
164
+ getDatePrefix() {
165
+ const now = new Date();
166
+ const year = now.getFullYear();
167
+ const month = String(now.getMonth() + 1).padStart(2, '0');
168
+ const day = String(now.getDate()).padStart(2, '0');
169
+ const hour = String(now.getHours()).padStart(2, '0');
170
+ const minute = String(now.getMinutes()).padStart(2, '0');
171
+ const second = String(now.getSeconds()).padStart(2, '0');
172
+ return `${year}_${month}_${day}_${hour}${minute}${second}`;
173
+ }
174
+ /**
175
+ * Ensure the migration directory exists
176
+ */
177
+ ensureMigrationDirectoryExists(path) {
178
+ if (!fs.existsSync(path)) {
179
+ fs.mkdirSync(path, { recursive: true });
180
+ }
181
+ }
182
+ }
183
+ exports.MigrationCreator = MigrationCreator;
184
+ //# sourceMappingURL=MigrationCreator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MigrationCreator.js","sourceRoot":"","sources":["../../../src/Database/Migrations/MigrationCreator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * MigrationRepository
3
+ *
4
+ * Manages the migrations table that tracks which migrations have been run
5
+ */
6
+ import { Connection } from '../Connection';
7
+ export interface MigrationData {
8
+ id?: number;
9
+ migration: string;
10
+ batch: number;
11
+ }
12
+ export declare class MigrationRepository {
13
+ protected connection: Connection;
14
+ protected table: string;
15
+ constructor(connection: Connection);
16
+ /**
17
+ * Get the migrations that have been run
18
+ */
19
+ getRan(): Promise<string[]>;
20
+ /**
21
+ * Get the list of migrations
22
+ */
23
+ getMigrations(steps?: number): Promise<MigrationData[]>;
24
+ /**
25
+ * Get the last migration batch
26
+ */
27
+ getLast(): Promise<MigrationData[]>;
28
+ /**
29
+ * Get the migrations for a batch
30
+ */
31
+ getMigrationBatches(): Promise<Record<string, number>>;
32
+ /**
33
+ * Log that a migration was run
34
+ */
35
+ log(file: string, batch: number): Promise<void>;
36
+ /**
37
+ * Remove a migration from the log
38
+ */
39
+ delete(migration: MigrationData): Promise<void>;
40
+ /**
41
+ * Get the next migration batch number
42
+ */
43
+ getNextBatchNumber(): Promise<number>;
44
+ /**
45
+ * Get the last migration batch number
46
+ */
47
+ getLastBatchNumber(): Promise<number>;
48
+ /**
49
+ * Create the migration repository table
50
+ */
51
+ createRepository(): Promise<void>;
52
+ /**
53
+ * Determine if the migration repository exists
54
+ */
55
+ repositoryExists(): Promise<boolean>;
56
+ /**
57
+ * Delete the migration repository
58
+ */
59
+ deleteRepository(): Promise<void>;
60
+ /**
61
+ * Set the information source to gather data
62
+ */
63
+ setSource(name: string): void;
64
+ }
65
+ //# sourceMappingURL=MigrationRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MigrationRepository.d.ts","sourceRoot":"","sources":["../../../src/Database/Migrations/MigrationRepository.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,mBAAmB;IAGlB,SAAS,CAAC,UAAU,EAAE,UAAU;IAF5C,SAAS,CAAC,KAAK,EAAE,MAAM,CAAgB;gBAEjB,UAAU,EAAE,UAAU;IAE5C;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAUjC;;OAEG;IACG,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAa7D;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAczC;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAe5D;;OAEG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrD;;OAEG;IACG,MAAM,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI3C;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAM3C;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAYvC;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAS1C;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAG9B"}
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ /**
3
+ * MigrationRepository
4
+ *
5
+ * Manages the migrations table that tracks which migrations have been run
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.MigrationRepository = void 0;
9
+ class MigrationRepository {
10
+ connection;
11
+ table = 'migrations';
12
+ constructor(connection) {
13
+ this.connection = connection;
14
+ }
15
+ /**
16
+ * Get the migrations that have been run
17
+ */
18
+ async getRan() {
19
+ const results = await this.connection
20
+ .table(this.table)
21
+ .orderBy('batch', 'asc')
22
+ .orderBy('migration', 'asc')
23
+ .get();
24
+ return results.map((row) => row.migration);
25
+ }
26
+ /**
27
+ * Get the list of migrations
28
+ */
29
+ async getMigrations(steps) {
30
+ const query = this.connection
31
+ .table(this.table)
32
+ .orderBy('batch', 'desc')
33
+ .orderBy('migration', 'desc');
34
+ if (steps !== undefined && steps > 0) {
35
+ query.limit(steps);
36
+ }
37
+ return await query.get();
38
+ }
39
+ /**
40
+ * Get the last migration batch
41
+ */
42
+ async getLast() {
43
+ const batch = await this.getLastBatchNumber();
44
+ if (batch === 0) {
45
+ return [];
46
+ }
47
+ return await this.connection
48
+ .table(this.table)
49
+ .where('batch', batch)
50
+ .orderBy('migration', 'desc')
51
+ .get();
52
+ }
53
+ /**
54
+ * Get the migrations for a batch
55
+ */
56
+ async getMigrationBatches() {
57
+ const results = await this.connection
58
+ .table(this.table)
59
+ .orderBy('batch', 'asc')
60
+ .orderBy('migration', 'asc')
61
+ .get();
62
+ const batches = {};
63
+ results.forEach((row) => {
64
+ batches[row.migration] = row.batch;
65
+ });
66
+ return batches;
67
+ }
68
+ /**
69
+ * Log that a migration was run
70
+ */
71
+ async log(file, batch) {
72
+ await this.connection.table(this.table).insert({
73
+ migration: file,
74
+ batch,
75
+ });
76
+ }
77
+ /**
78
+ * Remove a migration from the log
79
+ */
80
+ async delete(migration) {
81
+ await this.connection.table(this.table).where('migration', migration.migration).delete();
82
+ }
83
+ /**
84
+ * Get the next migration batch number
85
+ */
86
+ async getNextBatchNumber() {
87
+ return (await this.getLastBatchNumber()) + 1;
88
+ }
89
+ /**
90
+ * Get the last migration batch number
91
+ */
92
+ async getLastBatchNumber() {
93
+ const result = await this.connection.table(this.table).max('batch');
94
+ return result !== null ? Number(result) : 0;
95
+ }
96
+ /**
97
+ * Create the migration repository table
98
+ */
99
+ async createRepository() {
100
+ const schema = this.connection.getAdapter();
101
+ await this.connection.query(`
102
+ CREATE TABLE IF NOT EXISTS ${this.table} (
103
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
104
+ migration VARCHAR(255) NOT NULL,
105
+ batch INTEGER NOT NULL
106
+ )
107
+ `);
108
+ }
109
+ /**
110
+ * Determine if the migration repository exists
111
+ */
112
+ async repositoryExists() {
113
+ try {
114
+ await this.connection.table(this.table).limit(1).get();
115
+ return true;
116
+ }
117
+ catch (error) {
118
+ return false;
119
+ }
120
+ }
121
+ /**
122
+ * Delete the migration repository
123
+ */
124
+ async deleteRepository() {
125
+ await this.connection.query(`DROP TABLE IF EXISTS ${this.table}`);
126
+ }
127
+ /**
128
+ * Set the information source to gather data
129
+ */
130
+ setSource(name) {
131
+ // Reserved for future use with different connections
132
+ }
133
+ }
134
+ exports.MigrationRepository = MigrationRepository;
135
+ //# sourceMappingURL=MigrationRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MigrationRepository.js","sourceRoot":"","sources":["../../../src/Database/Migrations/MigrationRepository.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAUH,MAAa,mBAAmB;IAGR;IAFZ,KAAK,GAAW,YAAY,CAAC;IAEvC,YAAsB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAEhD;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU;aAClC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;aACjB,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;aACvB,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC;aAC3B,GAAG,EAAE,CAAC;QAET,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,KAAc;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU;aAC1B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;aACjB,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;aACxB,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAEhC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACrC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE9C,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,UAAU;aACzB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;aACjB,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC;aACrB,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC;aAC5B,GAAG,EAAE,CAAC;IACX,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB;QACvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU;aAClC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;aACjB,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;aACvB,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC;aAC3B,GAAG,EAAE,CAAC;QAET,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,OAAO,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,EAAE;YAC3B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,KAAa;QACnC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;YAC7C,SAAS,EAAE,IAAI;YACf,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,SAAwB;QACnC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB;QACtB,OAAO,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB;QACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEpE,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QAE5C,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;mCACG,IAAI,CAAC,KAAK;;;;;KAKxC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB;QACpB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB;QACpB,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,wBAAwB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,IAAY;QACpB,qDAAqD;IACvD,CAAC;CACF;AA9ID,kDA8IC"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Migrator
3
+ *
4
+ * Handles running and rolling back migrations
5
+ */
6
+ import { Connection } from '../Connection';
7
+ import { MigrationRepository } from './MigrationRepository';
8
+ import { Migration } from './Migration';
9
+ import { SchemaBuilder } from './SchemaBuilder';
10
+ export interface MigrationOptions {
11
+ step?: number;
12
+ pretend?: boolean;
13
+ }
14
+ export declare class Migrator {
15
+ protected connection: Connection;
16
+ protected paths: string[];
17
+ protected repository: MigrationRepository;
18
+ protected schema: SchemaBuilder;
19
+ constructor(connection: Connection, paths: string[]);
20
+ /**
21
+ * Run the pending migrations
22
+ */
23
+ run(options?: MigrationOptions): Promise<string[]>;
24
+ /**
25
+ * Run a single migration up
26
+ */
27
+ protected runUp(file: string, batch: number, pretend: boolean): Promise<void>;
28
+ /**
29
+ * Rollback the last migration batch
30
+ */
31
+ rollback(options?: MigrationOptions): Promise<string[]>;
32
+ /**
33
+ * Run a single migration down
34
+ */
35
+ protected runDown(file: string, pretend: boolean): Promise<void>;
36
+ /**
37
+ * Reset all migrations
38
+ */
39
+ reset(): Promise<string[]>;
40
+ /**
41
+ * Refresh the database (reset and re-run all migrations)
42
+ */
43
+ refresh(): Promise<{
44
+ rolledBack: string[];
45
+ ran: string[];
46
+ }>;
47
+ /**
48
+ * Get migrations for rollback
49
+ */
50
+ protected getMigrationsForRollback(options: MigrationOptions): Promise<any[]>;
51
+ /**
52
+ * Resolve a migration instance from a file
53
+ */
54
+ protected resolveMigration(file: string): Promise<Migration>;
55
+ /**
56
+ * Find a migration file in the paths
57
+ */
58
+ protected findMigrationFile(file: string): Promise<string | null>;
59
+ /**
60
+ * Get all migration files
61
+ */
62
+ getMigrationFiles(): Promise<string[]>;
63
+ /**
64
+ * Get the ran migrations
65
+ */
66
+ getRan(): Promise<string[]>;
67
+ /**
68
+ * Get migrations with their batch numbers
69
+ */
70
+ getMigrationBatches(): Promise<Record<string, number>>;
71
+ /**
72
+ * Get the migration repository
73
+ */
74
+ getRepository(): MigrationRepository;
75
+ /**
76
+ * Set the migration paths
77
+ */
78
+ setPaths(paths: string[]): void;
79
+ /**
80
+ * Get the migration paths
81
+ */
82
+ getPaths(): string[];
83
+ }
84
+ //# sourceMappingURL=Migrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migrator.d.ts","sourceRoot":"","sources":["../../../src/Database/Migrations/Migrator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,QAAQ;IAKjB,SAAS,CAAC,UAAU,EAAE,UAAU;IAChC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE;IAL3B,SAAS,CAAC,UAAU,EAAE,mBAAmB,CAAC;IAC1C,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;gBAGpB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,EAAE;IAM3B;;OAEG;IACG,GAAG,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAyB5D;;OAEG;cACa,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnF;;OAEG;IACG,QAAQ,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiBjE;;OAEG;cACa,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAYtE;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAoBhC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,GAAG,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAOjE;;OAEG;cACa,wBAAwB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAQnF;;OAEG;cACa,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAoBlE;;OAEG;cACa,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAuBvE;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAqB5C;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIjC;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAI5D;;OAEG;IACH,aAAa,IAAI,mBAAmB;IAIpC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAI/B;;OAEG;IACH,QAAQ,IAAI,MAAM,EAAE;CAGrB"}