@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.
- package/README.md +433 -936
- package/dist/Console/Command.d.ts +59 -0
- package/dist/Console/Command.d.ts.map +1 -0
- package/dist/Console/Command.js +68 -0
- package/dist/Console/Command.js.map +1 -0
- package/dist/Console/Commands/MakeMigrationCommand.d.ts +15 -0
- package/dist/Console/Commands/MakeMigrationCommand.d.ts.map +1 -0
- package/dist/Console/Commands/MakeMigrationCommand.js +41 -0
- package/dist/Console/Commands/MakeMigrationCommand.js.map +1 -0
- package/dist/Console/Commands/MakeSeederCommand.d.ts +23 -0
- package/dist/Console/Commands/MakeSeederCommand.d.ts.map +1 -0
- package/dist/Console/Commands/MakeSeederCommand.js +109 -0
- package/dist/Console/Commands/MakeSeederCommand.js.map +1 -0
- package/dist/Console/Commands/MigrateCommand.d.ts +15 -0
- package/dist/Console/Commands/MigrateCommand.d.ts.map +1 -0
- package/dist/Console/Commands/MigrateCommand.js +48 -0
- package/dist/Console/Commands/MigrateCommand.js.map +1 -0
- package/dist/Console/Commands/MigrateFreshCommand.d.ts +15 -0
- package/dist/Console/Commands/MigrateFreshCommand.d.ts.map +1 -0
- package/dist/Console/Commands/MigrateFreshCommand.js +54 -0
- package/dist/Console/Commands/MigrateFreshCommand.js.map +1 -0
- package/dist/Console/Commands/MigrateRefreshCommand.d.ts +15 -0
- package/dist/Console/Commands/MigrateRefreshCommand.d.ts.map +1 -0
- package/dist/Console/Commands/MigrateRefreshCommand.js +52 -0
- package/dist/Console/Commands/MigrateRefreshCommand.js.map +1 -0
- package/dist/Console/Commands/MigrateResetCommand.d.ts +15 -0
- package/dist/Console/Commands/MigrateResetCommand.d.ts.map +1 -0
- package/dist/Console/Commands/MigrateResetCommand.js +46 -0
- package/dist/Console/Commands/MigrateResetCommand.js.map +1 -0
- package/dist/Console/Commands/MigrateRollbackCommand.d.ts +15 -0
- package/dist/Console/Commands/MigrateRollbackCommand.d.ts.map +1 -0
- package/dist/Console/Commands/MigrateRollbackCommand.js +49 -0
- package/dist/Console/Commands/MigrateRollbackCommand.js.map +1 -0
- package/dist/Console/Commands/MigrateStatusCommand.d.ts +15 -0
- package/dist/Console/Commands/MigrateStatusCommand.d.ts.map +1 -0
- package/dist/Console/Commands/MigrateStatusCommand.js +58 -0
- package/dist/Console/Commands/MigrateStatusCommand.js.map +1 -0
- package/dist/Console/Commands/SeedCommand.d.ts +15 -0
- package/dist/Console/Commands/SeedCommand.d.ts.map +1 -0
- package/dist/Console/Commands/SeedCommand.js +44 -0
- package/dist/Console/Commands/SeedCommand.js.map +1 -0
- package/dist/Console/ConsoleKernel.d.ts +45 -0
- package/dist/Console/ConsoleKernel.d.ts.map +1 -0
- package/dist/Console/ConsoleKernel.js +109 -0
- package/dist/Console/ConsoleKernel.js.map +1 -0
- package/dist/Console/orchestr.d.ts +8 -0
- package/dist/Console/orchestr.d.ts.map +1 -0
- package/dist/Console/orchestr.js +45 -0
- package/dist/Console/orchestr.js.map +1 -0
- package/dist/Database/Ensemble/Concerns/HasDynamicRelations.d.ts +5 -0
- package/dist/Database/Ensemble/Concerns/HasDynamicRelations.d.ts.map +1 -1
- package/dist/Database/Ensemble/Concerns/HasDynamicRelations.js.map +1 -1
- package/dist/Database/Ensemble/Concerns/HasRelationships.d.ts +20 -0
- package/dist/Database/Ensemble/Concerns/HasRelationships.d.ts.map +1 -1
- package/dist/Database/Ensemble/Concerns/HasRelationships.js +57 -0
- package/dist/Database/Ensemble/Concerns/HasRelationships.js.map +1 -1
- package/dist/Database/Ensemble/Relations/MorphMany.d.ts +97 -0
- package/dist/Database/Ensemble/Relations/MorphMany.d.ts.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphMany.js +189 -0
- package/dist/Database/Ensemble/Relations/MorphMany.js.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphMap.d.ts +59 -0
- package/dist/Database/Ensemble/Relations/MorphMap.d.ts.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphMap.js +84 -0
- package/dist/Database/Ensemble/Relations/MorphMap.js.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphOne.d.ts +93 -0
- package/dist/Database/Ensemble/Relations/MorphOne.d.ts.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphOne.js +179 -0
- package/dist/Database/Ensemble/Relations/MorphOne.js.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphTo.d.ts +98 -0
- package/dist/Database/Ensemble/Relations/MorphTo.d.ts.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphTo.js +214 -0
- package/dist/Database/Ensemble/Relations/MorphTo.js.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphToMany.d.ts +73 -0
- package/dist/Database/Ensemble/Relations/MorphToMany.d.ts.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphToMany.js +164 -0
- package/dist/Database/Ensemble/Relations/MorphToMany.js.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphedByMany.d.ts +29 -0
- package/dist/Database/Ensemble/Relations/MorphedByMany.d.ts.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphedByMany.js +58 -0
- package/dist/Database/Ensemble/Relations/MorphedByMany.js.map +1 -0
- package/dist/Database/Ensemble/Relations/index.d.ts +6 -0
- package/dist/Database/Ensemble/Relations/index.d.ts.map +1 -1
- package/dist/Database/Ensemble/Relations/index.js +14 -1
- package/dist/Database/Ensemble/Relations/index.js.map +1 -1
- package/dist/Database/Migrations/Blueprint.d.ts +166 -0
- package/dist/Database/Migrations/Blueprint.d.ts.map +1 -0
- package/dist/Database/Migrations/Blueprint.js +318 -0
- package/dist/Database/Migrations/Blueprint.js.map +1 -0
- package/dist/Database/Migrations/ColumnDefinition.d.ts +62 -0
- package/dist/Database/Migrations/ColumnDefinition.d.ts.map +1 -0
- package/dist/Database/Migrations/ColumnDefinition.js +95 -0
- package/dist/Database/Migrations/ColumnDefinition.js.map +1 -0
- package/dist/Database/Migrations/ForeignKeyDefinition.d.ts +32 -0
- package/dist/Database/Migrations/ForeignKeyDefinition.d.ts.map +1 -0
- package/dist/Database/Migrations/ForeignKeyDefinition.js +50 -0
- package/dist/Database/Migrations/ForeignKeyDefinition.js.map +1 -0
- package/dist/Database/Migrations/Migration.d.ts +17 -0
- package/dist/Database/Migrations/Migration.d.ts.map +1 -0
- package/dist/Database/Migrations/Migration.js +12 -0
- package/dist/Database/Migrations/Migration.js.map +1 -0
- package/dist/Database/Migrations/MigrationCreator.d.ts +42 -0
- package/dist/Database/Migrations/MigrationCreator.d.ts.map +1 -0
- package/dist/Database/Migrations/MigrationCreator.js +184 -0
- package/dist/Database/Migrations/MigrationCreator.js.map +1 -0
- package/dist/Database/Migrations/MigrationRepository.d.ts +65 -0
- package/dist/Database/Migrations/MigrationRepository.d.ts.map +1 -0
- package/dist/Database/Migrations/MigrationRepository.js +135 -0
- package/dist/Database/Migrations/MigrationRepository.js.map +1 -0
- package/dist/Database/Migrations/Migrator.d.ts +84 -0
- package/dist/Database/Migrations/Migrator.d.ts.map +1 -0
- package/dist/Database/Migrations/Migrator.js +239 -0
- package/dist/Database/Migrations/Migrator.js.map +1 -0
- package/dist/Database/Migrations/SchemaBuilder.d.ts +136 -0
- package/dist/Database/Migrations/SchemaBuilder.d.ts.map +1 -0
- package/dist/Database/Migrations/SchemaBuilder.js +515 -0
- package/dist/Database/Migrations/SchemaBuilder.js.map +1 -0
- package/dist/Database/Seeders/Seeder.d.ts +29 -0
- package/dist/Database/Seeders/Seeder.d.ts.map +1 -0
- package/dist/Database/Seeders/Seeder.js +41 -0
- package/dist/Database/Seeders/Seeder.js.map +1 -0
- package/dist/Database/Seeders/SeederRunner.d.ts +41 -0
- package/dist/Database/Seeders/SeederRunner.d.ts.map +1 -0
- package/dist/Database/Seeders/SeederRunner.js +134 -0
- package/dist/Database/Seeders/SeederRunner.js.map +1 -0
- package/dist/index.d.ts +27 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +58 -1
- package/dist/index.js.map +1 -1
- 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":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAE7B,MAAa,gBAAgB;IACL;IAAtB,YAAsB,cAAuB;QAAvB,mBAAc,GAAd,cAAc,CAAS;IAAG,CAAC;IAEjD;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,aAAqB,EAAE,KAAc,EAAE,SAAkB,KAAK;QACvF,IAAI,CAAC,8BAA8B,CAAC,aAAa,CAAC,CAAC;QAEnD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAEpD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEjD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAEtC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACO,OAAO,CAAC,KAAc,EAAE,SAAkB,KAAK;QACvD,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;QAC9B,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;QAC9B,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACO,YAAY;QACpB,OAAO;;;;;;;;;;;;;;;;;;CAkBV,CAAC;IACA,CAAC;IAED;;OAEG;IACO,aAAa;QACrB,OAAO;;;;;;;;;;;;;;;;;;;;;CAqBV,CAAC;IACA,CAAC;IAED;;OAEG;IACO,aAAa;QACrB,OAAO;;;;;;;;;;;;;;;;;;;;;;CAsBV,CAAC;IACA,CAAC;IAED;;OAEG;IACO,YAAY,CAAC,IAAY,EAAE,KAAc;QACjD,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACO,aAAa;QACrB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAEzD,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7D,CAAC;IAED;;OAEG;IACO,8BAA8B,CAAC,IAAY;QACnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;CACF;AAxJD,4CAwJC"}
|
|
@@ -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":"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"}
|
|
@@ -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"}
|