fragment-ts 1.0.12 ā 1.0.13
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/dist/cli/commands/init.command.d.ts.map +1 -1
- package/dist/cli/commands/init.command.js +9 -4
- package/dist/cli/commands/init.command.js.map +1 -1
- package/dist/cli/commands/migrate.command.d.ts +14 -0
- package/dist/cli/commands/migrate.command.d.ts.map +1 -1
- package/dist/cli/commands/migrate.command.js +223 -65
- package/dist/cli/commands/migrate.command.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/commands/init.command.ts +10 -4
- package/src/cli/commands/migrate.command.ts +291 -77
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,qBAAa,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;WAe1B,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;mBAsF/C,wBAAwB;mBAyCxB,iBAAiB;
|
|
1
|
+
{"version":3,"file":"init.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,qBAAa,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;WAe1B,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;mBAsF/C,wBAAwB;mBAyCxB,iBAAiB;mBAmGjB,gBAAgB;mBA+BhB,yBAAyB;mBAoBzB,sBAAsB;mBAmBtB,qBAAqB;mBA2BrB,iBAAiB;CA8CvC"}
|
|
@@ -177,7 +177,7 @@ class InitCommand {
|
|
|
177
177
|
"migrate:revert": "fragment migrate:revert",
|
|
178
178
|
},
|
|
179
179
|
dependencies: {
|
|
180
|
-
"fragment-ts": "^1.0.
|
|
180
|
+
"fragment-ts": "^1.0.13",
|
|
181
181
|
"reflect-metadata": "^0.1.13",
|
|
182
182
|
},
|
|
183
183
|
devDependencies: {
|
|
@@ -210,13 +210,18 @@ class InitCommand {
|
|
|
210
210
|
const fragmentConfig = {};
|
|
211
211
|
if (features.includes("database")) {
|
|
212
212
|
// Default SQLite config with env interpolation
|
|
213
|
+
const isProd = process.env.NODE_ENV === "production";
|
|
213
214
|
fragmentConfig.database = {
|
|
214
215
|
type: "sqlite",
|
|
215
|
-
database:
|
|
216
|
+
database: process.env.DATABASE_FILE || "database.sqlite",
|
|
216
217
|
synchronize: true,
|
|
217
218
|
logging: false,
|
|
218
|
-
entities:
|
|
219
|
-
|
|
219
|
+
entities: isProd
|
|
220
|
+
? ["dist/**/*.entity.js"]
|
|
221
|
+
: ["src/**/*.entity.ts"],
|
|
222
|
+
migrations: isProd
|
|
223
|
+
? ["dist/migrations/**/*.js"]
|
|
224
|
+
: ["src/migrations/**/*.ts"],
|
|
220
225
|
subscribers: [],
|
|
221
226
|
};
|
|
222
227
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,14 @@ import { Command } from "commander";
|
|
|
2
2
|
export declare class MigrateCommand {
|
|
3
3
|
static register(program: Command): void;
|
|
4
4
|
private static generateMigration;
|
|
5
|
+
/**
|
|
6
|
+
* Verify entities are loaded and provide helpful debugging
|
|
7
|
+
*/
|
|
8
|
+
private static verifyEntities;
|
|
9
|
+
/**
|
|
10
|
+
* Build a single query statement with proper escaping
|
|
11
|
+
*/
|
|
12
|
+
private static buildQueryStatement;
|
|
5
13
|
private static createMigration;
|
|
6
14
|
private static runMigrations;
|
|
7
15
|
private static revertMigration;
|
|
@@ -11,5 +19,11 @@ export declare class MigrateCommand {
|
|
|
11
19
|
private static dropSchema;
|
|
12
20
|
private static runSeeds;
|
|
13
21
|
private static createSeed;
|
|
22
|
+
private static checkDatabase;
|
|
23
|
+
private static findEntityFiles;
|
|
24
|
+
/**
|
|
25
|
+
* Build the complete migration file template
|
|
26
|
+
*/
|
|
27
|
+
private static buildMigrationTemplate;
|
|
14
28
|
}
|
|
15
29
|
//# sourceMappingURL=migrate.command.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/migrate.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,qBAAa,cAAc;IACzB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;mBAoFlB,iBAAiB;
|
|
1
|
+
{"version":3,"file":"migrate.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/migrate.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,qBAAa,cAAc;IACzB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;mBAoFlB,iBAAiB;IA4HtC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAoB7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;mBA2Bb,eAAe;mBA8Bf,aAAa;mBAoCb,eAAe;mBAqBf,iBAAiB;mBAsBjB,UAAU;mBA+CV,UAAU;mBAqBV,UAAU;mBAqBV,QAAQ;mBA6BR,UAAU;mBA2BV,aAAa;IAuGlC,OAAO,CAAC,MAAM,CAAC,eAAe;IAiB9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;CAkCtC"}
|
|
@@ -113,99 +113,135 @@ class MigrateCommand {
|
|
|
113
113
|
});
|
|
114
114
|
}
|
|
115
115
|
// -----------------------------------------
|
|
116
|
-
// MIGRATION GENERATE
|
|
116
|
+
// MIGRATION GENERATE - REBUILT FOR RELIABILITY
|
|
117
117
|
// -----------------------------------------
|
|
118
118
|
static async generateMigration(nameOrPath, options) {
|
|
119
119
|
const spinner = (0, ora_1.default)("Generating migration...").start();
|
|
120
120
|
let dataSource = null;
|
|
121
121
|
try {
|
|
122
|
+
// 1ļøā£ Initialize DataSource
|
|
122
123
|
dataSource = await typeorm_module_1.TypeORMModule.initialize();
|
|
123
|
-
if (!dataSource) {
|
|
124
|
-
throw new Error(
|
|
124
|
+
if (!dataSource?.isInitialized) {
|
|
125
|
+
throw new Error("Failed to initialize DataSource");
|
|
125
126
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
// 1ļøā£ Check migrations folder
|
|
127
|
+
// 1.5ļøā£ Verify entities are loaded
|
|
128
|
+
this.verifyEntities(dataSource);
|
|
129
|
+
// 2ļøā£ Setup migrations directory
|
|
130
130
|
const migrationsDir = path.join(process.cwd(), "src", "migrations");
|
|
131
|
+
await fs.ensureDir(migrationsDir);
|
|
131
132
|
const existingMigrations = fs.existsSync(migrationsDir)
|
|
132
133
|
? fs.readdirSync(migrationsDir).filter((f) => f.endsWith(".ts"))
|
|
133
134
|
: [];
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
const
|
|
139
|
-
|
|
140
|
-
|
|
135
|
+
const isFirstMigration = existingMigrations.length === 0;
|
|
136
|
+
// 3ļøā£ Generate schema SQL by comparing entities with database
|
|
137
|
+
spinner.text = "Analyzing schema changes...";
|
|
138
|
+
const sqlInMemory = await dataSource.driver.createSchemaBuilder().log();
|
|
139
|
+
const upQueries = sqlInMemory.upQueries || [];
|
|
140
|
+
const downQueries = sqlInMemory.downQueries || [];
|
|
141
|
+
const hasChanges = upQueries.length > 0;
|
|
142
|
+
// 4ļøā£ Handle no changes scenario
|
|
143
|
+
if (!hasChanges && !isFirstMigration) {
|
|
141
144
|
spinner.info("No schema changes detected. Migration not generated.");
|
|
142
145
|
return;
|
|
143
146
|
}
|
|
144
|
-
|
|
147
|
+
if (!hasChanges && isFirstMigration) {
|
|
148
|
+
spinner.warn("No schema changes detected on first migration. Check that:\n" +
|
|
149
|
+
" - Your entities are in the correct location\n" +
|
|
150
|
+
" - You've compiled TypeScript (npm run build)\n" +
|
|
151
|
+
" - Entity paths in fragment.json are correct");
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
// 5ļøā£ Determine migration name
|
|
145
155
|
const migrationName = options.name ||
|
|
146
|
-
(nameOrPath
|
|
147
|
-
|
|
148
|
-
: existingMigrations.length === 0
|
|
149
|
-
? "InitialMigration"
|
|
150
|
-
: "Migration");
|
|
156
|
+
(nameOrPath ? path.basename(nameOrPath).replace(/\.ts$/, "") : null) ||
|
|
157
|
+
(isFirstMigration ? "InitialMigration" : "Migration");
|
|
151
158
|
const timestamp = Date.now();
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
: " // No schema changes detected";
|
|
166
|
-
const downSql = sqlLog.downQueries.length > 0
|
|
167
|
-
? sqlLog.downQueries
|
|
168
|
-
.map((q) => {
|
|
169
|
-
const escapedQuery = q.query
|
|
170
|
-
.replace(/`/g, "\\`")
|
|
171
|
-
.replace(/\$/g, "\\$");
|
|
172
|
-
const params = q.parameters && q.parameters.length > 0
|
|
173
|
-
? `, ${JSON.stringify(q.parameters)}`
|
|
174
|
-
: "";
|
|
175
|
-
return ` await queryRunner.query(\`${escapedQuery}\`${params});`;
|
|
176
|
-
})
|
|
177
|
-
.join("\n")
|
|
178
|
-
: " // No schema changes detected";
|
|
179
|
-
// 6ļøā£ Write the migration file
|
|
159
|
+
const className = `${migrationName}${timestamp}`;
|
|
160
|
+
// 6ļøā£ Build UP queries with safe escaping
|
|
161
|
+
spinner.text = "Building migration file...";
|
|
162
|
+
const upStatements = upQueries.map((query) => {
|
|
163
|
+
return this.buildQueryStatement(query);
|
|
164
|
+
});
|
|
165
|
+
// 7ļøā£ Build DOWN queries with safe escaping
|
|
166
|
+
const downStatements = downQueries.map((query) => {
|
|
167
|
+
return this.buildQueryStatement(query);
|
|
168
|
+
});
|
|
169
|
+
// 8ļøā£ Generate migration file content
|
|
170
|
+
const migrationContent = this.buildMigrationTemplate(className, upStatements, downStatements, isFirstMigration);
|
|
171
|
+
// 9ļøā£ Write migration file
|
|
180
172
|
const fileName = `${timestamp}-${migrationName}.ts`;
|
|
181
173
|
const filePath = path.join(migrationsDir, fileName);
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
${upSql}
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
async down(queryRunner: QueryRunner): Promise<void> {
|
|
190
|
-
${downSql}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
`;
|
|
194
|
-
await fs.ensureDir(migrationsDir);
|
|
195
|
-
await fs.writeFile(filePath, content);
|
|
196
|
-
spinner.succeed(`Migration generated successfully: ${filePath}`);
|
|
174
|
+
await fs.writeFile(filePath, migrationContent, "utf-8");
|
|
175
|
+
spinner.succeed(`Migration generated: ${chalk_1.default.cyan(fileName)}\n` +
|
|
176
|
+
` ${chalk_1.default.gray("Location:")} ${filePath}\n` +
|
|
177
|
+
` ${chalk_1.default.gray("Queries:")} ${upQueries.length} up, ${downQueries.length} down`);
|
|
197
178
|
}
|
|
198
179
|
catch (error) {
|
|
199
180
|
spinner.fail("Migration generation failed");
|
|
200
|
-
|
|
181
|
+
if (error instanceof Error) {
|
|
182
|
+
console.error(chalk_1.default.red("\nā Error: " + error.message));
|
|
183
|
+
if (error.message.includes("entities")) {
|
|
184
|
+
console.error(chalk_1.default.yellow("\nš” Tip: Make sure your entities are compiled and paths are correct in fragment.json"));
|
|
185
|
+
}
|
|
186
|
+
if (error.stack) {
|
|
187
|
+
console.error(chalk_1.default.gray("\nStack trace:"));
|
|
188
|
+
console.error(chalk_1.default.gray(error.stack));
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
console.error(chalk_1.default.red(String(error)));
|
|
193
|
+
}
|
|
201
194
|
process.exit(1);
|
|
202
195
|
}
|
|
203
196
|
finally {
|
|
204
197
|
if (dataSource?.isInitialized) {
|
|
205
|
-
|
|
198
|
+
try {
|
|
199
|
+
await dataSource.destroy();
|
|
200
|
+
}
|
|
201
|
+
catch (err) {
|
|
202
|
+
// Ignore cleanup errors
|
|
203
|
+
}
|
|
206
204
|
}
|
|
207
205
|
}
|
|
208
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* Verify entities are loaded and provide helpful debugging
|
|
209
|
+
*/
|
|
210
|
+
static verifyEntities(dataSource) {
|
|
211
|
+
const entities = dataSource.entityMetadatas;
|
|
212
|
+
if (entities.length === 0) {
|
|
213
|
+
throw new Error("No entities found! Make sure:\n" +
|
|
214
|
+
" 1. Your entities are decorated with @Entity()\n" +
|
|
215
|
+
" 2. You've compiled TypeScript: npm run build\n" +
|
|
216
|
+
" 3. Entity paths in fragment.json point to dist/**/*.entity.js\n" +
|
|
217
|
+
" 4. Entity files are named *.entity.ts");
|
|
218
|
+
}
|
|
219
|
+
console.log(chalk_1.default.gray(`\nš¦ Loaded ${entities.length} entity/entities:`));
|
|
220
|
+
entities.forEach((entity) => {
|
|
221
|
+
console.log(chalk_1.default.gray(` - ${entity.name} (${entity.tableName})`));
|
|
222
|
+
});
|
|
223
|
+
console.log();
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Build a single query statement with proper escaping
|
|
227
|
+
*/
|
|
228
|
+
static buildQueryStatement(query) {
|
|
229
|
+
// Escape backslashes, backticks, and dollar signs for template literals
|
|
230
|
+
let sql = query.query
|
|
231
|
+
.replace(/\\/g, "\\\\") // Escape backslashes first
|
|
232
|
+
.replace(/`/g, "\\`") // Escape backticks
|
|
233
|
+
.replace(/\$/g, "\\$") // Escape dollar signs
|
|
234
|
+
.replace(/\r\n/g, " ") // Remove Windows line breaks
|
|
235
|
+
.replace(/\n/g, " ") // Remove Unix line breaks
|
|
236
|
+
.replace(/\s+/g, " ") // Collapse multiple spaces
|
|
237
|
+
.trim();
|
|
238
|
+
// Handle parameters if present
|
|
239
|
+
if (query.parameters && query.parameters.length > 0) {
|
|
240
|
+
const params = JSON.stringify(query.parameters);
|
|
241
|
+
return `await queryRunner.query(\`${sql}\`, ${params});`;
|
|
242
|
+
}
|
|
243
|
+
return `await queryRunner.query(\`${sql}\`);`;
|
|
244
|
+
}
|
|
209
245
|
// -----------------------------------------
|
|
210
246
|
// EXISTING METHODS
|
|
211
247
|
// -----------------------------------------
|
|
@@ -415,6 +451,128 @@ export class ${name}${timestamp} implements MigrationInterface {
|
|
|
415
451
|
process.exit(1);
|
|
416
452
|
}
|
|
417
453
|
}
|
|
454
|
+
static async checkDatabase() {
|
|
455
|
+
console.log(chalk_1.default.blue("\nš Database Diagnostic Check\n"));
|
|
456
|
+
let dataSource = null;
|
|
457
|
+
try {
|
|
458
|
+
// Check fragment.json
|
|
459
|
+
const configPath = path.join(process.cwd(), "fragment.json");
|
|
460
|
+
if (!fs.existsSync(configPath)) {
|
|
461
|
+
console.log(chalk_1.default.yellow("ā ļø fragment.json not found"));
|
|
462
|
+
}
|
|
463
|
+
else {
|
|
464
|
+
console.log(chalk_1.default.green("ā fragment.json found"));
|
|
465
|
+
const config = JSON.parse(fs.readFileSync(configPath, "utf-8"));
|
|
466
|
+
console.log(chalk_1.default.gray(` Database type: ${config.database?.type || "not specified"}`));
|
|
467
|
+
console.log(chalk_1.default.gray(` Entity paths: ${JSON.stringify(config.database?.entities || "default")}`));
|
|
468
|
+
}
|
|
469
|
+
// Check dist folder
|
|
470
|
+
const distPath = path.join(process.cwd(), "dist");
|
|
471
|
+
if (!fs.existsSync(distPath)) {
|
|
472
|
+
console.log(chalk_1.default.red("\nā dist/ folder not found - run 'npm run build' first!"));
|
|
473
|
+
return;
|
|
474
|
+
}
|
|
475
|
+
else {
|
|
476
|
+
console.log(chalk_1.default.green("\nā dist/ folder exists"));
|
|
477
|
+
}
|
|
478
|
+
// Check for entity files
|
|
479
|
+
const entityFiles = this.findEntityFiles(distPath);
|
|
480
|
+
if (entityFiles.length === 0) {
|
|
481
|
+
console.log(chalk_1.default.red("ā No .entity.js files found in dist/"));
|
|
482
|
+
console.log(chalk_1.default.yellow(" Make sure your entity files are named *.entity.ts"));
|
|
483
|
+
}
|
|
484
|
+
else {
|
|
485
|
+
console.log(chalk_1.default.green(`ā Found ${entityFiles.length} entity file(s):`));
|
|
486
|
+
entityFiles.forEach((f) => console.log(chalk_1.default.gray(` - ${f}`)));
|
|
487
|
+
}
|
|
488
|
+
// Try to connect
|
|
489
|
+
console.log(chalk_1.default.blue("\nš” Attempting database connection..."));
|
|
490
|
+
dataSource = await typeorm_module_1.TypeORMModule.initialize();
|
|
491
|
+
console.log(chalk_1.default.green("ā Database connection successful"));
|
|
492
|
+
// Check loaded entities
|
|
493
|
+
const entities = dataSource.entityMetadatas;
|
|
494
|
+
console.log(chalk_1.default.blue(`\nš¦ Loaded Entities: ${entities.length}`));
|
|
495
|
+
if (entities.length === 0) {
|
|
496
|
+
console.log(chalk_1.default.red("ā No entities loaded by TypeORM!"));
|
|
497
|
+
console.log(chalk_1.default.yellow("\nPossible issues:"));
|
|
498
|
+
console.log(chalk_1.default.yellow(" 1. Entity files not compiled (run npm run build)"));
|
|
499
|
+
console.log(chalk_1.default.yellow(" 2. Entity paths in fragment.json incorrect"));
|
|
500
|
+
console.log(chalk_1.default.yellow(" 3. Missing @Entity() decorator"));
|
|
501
|
+
}
|
|
502
|
+
else {
|
|
503
|
+
entities.forEach((entity) => {
|
|
504
|
+
console.log(chalk_1.default.cyan(`\n ${entity.name}:`));
|
|
505
|
+
console.log(chalk_1.default.gray(` Table: ${entity.tableName}`));
|
|
506
|
+
console.log(chalk_1.default.gray(` Columns: ${entity.columns.length}`));
|
|
507
|
+
entity.columns.forEach((col) => {
|
|
508
|
+
console.log(chalk_1.default.gray(` - ${col.propertyName}: ${col.type}`));
|
|
509
|
+
});
|
|
510
|
+
});
|
|
511
|
+
}
|
|
512
|
+
// Check database tables
|
|
513
|
+
console.log(chalk_1.default.blue("\nšļø Checking database tables..."));
|
|
514
|
+
const queryRunner = dataSource.createQueryRunner();
|
|
515
|
+
try {
|
|
516
|
+
const tables = await queryRunner.getTables();
|
|
517
|
+
console.log(chalk_1.default.green(`ā Database has ${tables.length} table(s):`));
|
|
518
|
+
tables.forEach((t) => console.log(chalk_1.default.gray(` - ${t.name}`)));
|
|
519
|
+
}
|
|
520
|
+
finally {
|
|
521
|
+
await queryRunner.release();
|
|
522
|
+
}
|
|
523
|
+
console.log(chalk_1.default.green("\nā
Database check complete!\n"));
|
|
524
|
+
}
|
|
525
|
+
catch (error) {
|
|
526
|
+
console.log(chalk_1.default.red("\nā Error during check:"));
|
|
527
|
+
console.error(chalk_1.default.red(error instanceof Error ? error.message : String(error)));
|
|
528
|
+
}
|
|
529
|
+
finally {
|
|
530
|
+
if (dataSource?.isInitialized) {
|
|
531
|
+
await dataSource.destroy();
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
static findEntityFiles(dir, files = []) {
|
|
536
|
+
const items = fs.readdirSync(dir);
|
|
537
|
+
for (const item of items) {
|
|
538
|
+
const fullPath = path.join(dir, item);
|
|
539
|
+
const stat = fs.statSync(fullPath);
|
|
540
|
+
if (stat.isDirectory()) {
|
|
541
|
+
this.findEntityFiles(fullPath, files);
|
|
542
|
+
}
|
|
543
|
+
else if (item.endsWith(".entity.js")) {
|
|
544
|
+
files.push(fullPath.replace(process.cwd(), "."));
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
return files;
|
|
548
|
+
}
|
|
549
|
+
/**
|
|
550
|
+
* Build the complete migration file template
|
|
551
|
+
*/
|
|
552
|
+
static buildMigrationTemplate(className, upStatements, downStatements, isFirstMigration) {
|
|
553
|
+
const upBody = upStatements.length > 0
|
|
554
|
+
? upStatements.map((s) => ` ${s}`).join("\n")
|
|
555
|
+
: " // No changes";
|
|
556
|
+
const downBody = downStatements.length > 0
|
|
557
|
+
? downStatements.map((s) => ` ${s}`).join("\n")
|
|
558
|
+
: " // No changes";
|
|
559
|
+
const comment = isFirstMigration
|
|
560
|
+
? " // Initial migration - creates all tables\n"
|
|
561
|
+
: "";
|
|
562
|
+
return `import { MigrationInterface, QueryRunner } from "typeorm";
|
|
563
|
+
|
|
564
|
+
export class ${className} implements MigrationInterface {
|
|
565
|
+
${comment}
|
|
566
|
+
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
567
|
+
${upBody}
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
public async down(queryRunner: QueryRunner): Promise<void> {
|
|
571
|
+
${downBody}
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
`;
|
|
575
|
+
}
|
|
418
576
|
}
|
|
419
577
|
exports.MigrateCommand = MigrateCommand;
|
|
420
578
|
//# sourceMappingURL=migrate.command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.command.js","sourceRoot":"","sources":["../../../src/cli/commands/migrate.command.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"migrate.command.js","sourceRoot":"","sources":["../../../src/cli/commands/migrate.command.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -169,7 +169,7 @@ export class InitCommand {
|
|
|
169
169
|
"migrate:revert": "fragment migrate:revert",
|
|
170
170
|
},
|
|
171
171
|
dependencies: {
|
|
172
|
-
"fragment-ts": "^1.0.
|
|
172
|
+
"fragment-ts": "^1.0.13",
|
|
173
173
|
"reflect-metadata": "^0.1.13",
|
|
174
174
|
},
|
|
175
175
|
devDependencies: {
|
|
@@ -207,13 +207,19 @@ export class InitCommand {
|
|
|
207
207
|
|
|
208
208
|
if (features.includes("database")) {
|
|
209
209
|
// Default SQLite config with env interpolation
|
|
210
|
+
const isProd = process.env.NODE_ENV === "production";
|
|
211
|
+
|
|
210
212
|
fragmentConfig.database = {
|
|
211
213
|
type: "sqlite",
|
|
212
|
-
database:
|
|
214
|
+
database: process.env.DATABASE_FILE || "database.sqlite",
|
|
213
215
|
synchronize: true,
|
|
214
216
|
logging: false,
|
|
215
|
-
entities:
|
|
216
|
-
|
|
217
|
+
entities: isProd
|
|
218
|
+
? ["dist/**/*.entity.js"]
|
|
219
|
+
: ["src/**/*.entity.ts"],
|
|
220
|
+
migrations: isProd
|
|
221
|
+
? ["dist/migrations/**/*.js"]
|
|
222
|
+
: ["src/migrations/**/*.ts"],
|
|
217
223
|
subscribers: [],
|
|
218
224
|
};
|
|
219
225
|
}
|
|
@@ -88,7 +88,7 @@ export class MigrateCommand {
|
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
// -----------------------------------------
|
|
91
|
-
// MIGRATION GENERATE
|
|
91
|
+
// MIGRATION GENERATE - REBUILT FOR RELIABILITY
|
|
92
92
|
// -----------------------------------------
|
|
93
93
|
|
|
94
94
|
private static async generateMigration(
|
|
@@ -99,115 +99,171 @@ export class MigrateCommand {
|
|
|
99
99
|
let dataSource: DataSource | null = null;
|
|
100
100
|
|
|
101
101
|
try {
|
|
102
|
+
// 1ļøā£ Initialize DataSource
|
|
102
103
|
dataSource = await TypeORMModule.initialize();
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
throw new Error(
|
|
106
|
-
`No DataSource found. Make sure you export a default DataSource instance.`,
|
|
107
|
-
);
|
|
104
|
+
if (!dataSource?.isInitialized) {
|
|
105
|
+
throw new Error("Failed to initialize DataSource");
|
|
108
106
|
}
|
|
109
107
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
}
|
|
108
|
+
// 1.5ļøā£ Verify entities are loaded
|
|
109
|
+
this.verifyEntities(dataSource);
|
|
113
110
|
|
|
114
|
-
//
|
|
111
|
+
// 2ļøā£ Setup migrations directory
|
|
115
112
|
const migrationsDir = path.join(process.cwd(), "src", "migrations");
|
|
113
|
+
await fs.ensureDir(migrationsDir);
|
|
114
|
+
|
|
116
115
|
const existingMigrations = fs.existsSync(migrationsDir)
|
|
117
116
|
? fs.readdirSync(migrationsDir).filter((f) => f.endsWith(".ts"))
|
|
118
117
|
: [];
|
|
119
118
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
119
|
+
const isFirstMigration = existingMigrations.length === 0;
|
|
120
|
+
|
|
121
|
+
// 3ļøā£ Generate schema SQL by comparing entities with database
|
|
122
|
+
spinner.text = "Analyzing schema changes...";
|
|
123
|
+
const sqlInMemory = await dataSource.driver.createSchemaBuilder().log();
|
|
123
124
|
|
|
124
|
-
|
|
125
|
-
const
|
|
126
|
-
|
|
125
|
+
const upQueries = sqlInMemory.upQueries || [];
|
|
126
|
+
const downQueries = sqlInMemory.downQueries || [];
|
|
127
|
+
const hasChanges = upQueries.length > 0;
|
|
127
128
|
|
|
128
|
-
//
|
|
129
|
-
if (!hasChanges &&
|
|
129
|
+
// 4ļøā£ Handle no changes scenario
|
|
130
|
+
if (!hasChanges && !isFirstMigration) {
|
|
130
131
|
spinner.info("No schema changes detected. Migration not generated.");
|
|
131
132
|
return;
|
|
132
133
|
}
|
|
133
134
|
|
|
134
|
-
|
|
135
|
+
if (!hasChanges && isFirstMigration) {
|
|
136
|
+
spinner.warn(
|
|
137
|
+
"No schema changes detected on first migration. Check that:\n" +
|
|
138
|
+
" - Your entities are in the correct location\n" +
|
|
139
|
+
" - You've compiled TypeScript (npm run build)\n" +
|
|
140
|
+
" - Entity paths in fragment.json are correct",
|
|
141
|
+
);
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// 5ļøā£ Determine migration name
|
|
135
146
|
const migrationName =
|
|
136
147
|
options.name ||
|
|
137
|
-
(nameOrPath
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
? "InitialMigration"
|
|
141
|
-
: "Migration");
|
|
148
|
+
(nameOrPath ? path.basename(nameOrPath).replace(/\.ts$/, "") : null) ||
|
|
149
|
+
(isFirstMigration ? "InitialMigration" : "Migration");
|
|
150
|
+
|
|
142
151
|
const timestamp = Date.now();
|
|
152
|
+
const className = `${migrationName}${timestamp}`;
|
|
143
153
|
|
|
144
|
-
//
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
const escapedQuery = q.query
|
|
150
|
-
.replace(/`/g, "\\`")
|
|
151
|
-
.replace(/\$/g, "\\$");
|
|
152
|
-
const params =
|
|
153
|
-
q.parameters && q.parameters.length > 0
|
|
154
|
-
? `, ${JSON.stringify(q.parameters)}`
|
|
155
|
-
: "";
|
|
156
|
-
return ` await queryRunner.query(\`${escapedQuery}\`${params});`;
|
|
157
|
-
})
|
|
158
|
-
.join("\n")
|
|
159
|
-
: " // No schema changes detected";
|
|
160
|
-
|
|
161
|
-
const downSql =
|
|
162
|
-
sqlLog.downQueries.length > 0
|
|
163
|
-
? sqlLog.downQueries
|
|
164
|
-
.map((q) => {
|
|
165
|
-
const escapedQuery = q.query
|
|
166
|
-
.replace(/`/g, "\\`")
|
|
167
|
-
.replace(/\$/g, "\\$");
|
|
168
|
-
const params =
|
|
169
|
-
q.parameters && q.parameters.length > 0
|
|
170
|
-
? `, ${JSON.stringify(q.parameters)}`
|
|
171
|
-
: "";
|
|
172
|
-
return ` await queryRunner.query(\`${escapedQuery}\`${params});`;
|
|
173
|
-
})
|
|
174
|
-
.join("\n")
|
|
175
|
-
: " // No schema changes detected";
|
|
176
|
-
|
|
177
|
-
// 6ļøā£ Write the migration file
|
|
178
|
-
const fileName = `${timestamp}-${migrationName}.ts`;
|
|
179
|
-
const filePath = path.join(migrationsDir, fileName);
|
|
154
|
+
// 6ļøā£ Build UP queries with safe escaping
|
|
155
|
+
spinner.text = "Building migration file...";
|
|
156
|
+
const upStatements = upQueries.map((query) => {
|
|
157
|
+
return this.buildQueryStatement(query);
|
|
158
|
+
});
|
|
180
159
|
|
|
181
|
-
|
|
160
|
+
// 7ļøā£ Build DOWN queries with safe escaping
|
|
161
|
+
const downStatements = downQueries.map((query) => {
|
|
162
|
+
return this.buildQueryStatement(query);
|
|
163
|
+
});
|
|
182
164
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
165
|
+
// 8ļøā£ Generate migration file content
|
|
166
|
+
const migrationContent = this.buildMigrationTemplate(
|
|
167
|
+
className,
|
|
168
|
+
upStatements,
|
|
169
|
+
downStatements,
|
|
170
|
+
isFirstMigration,
|
|
171
|
+
);
|
|
187
172
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
}
|
|
192
|
-
`;
|
|
173
|
+
// 9ļøā£ Write migration file
|
|
174
|
+
const fileName = `${timestamp}-${migrationName}.ts`;
|
|
175
|
+
const filePath = path.join(migrationsDir, fileName);
|
|
193
176
|
|
|
194
|
-
await fs.
|
|
195
|
-
await fs.writeFile(filePath, content);
|
|
177
|
+
await fs.writeFile(filePath, migrationContent, "utf-8");
|
|
196
178
|
|
|
197
|
-
spinner.succeed(
|
|
179
|
+
spinner.succeed(
|
|
180
|
+
`Migration generated: ${chalk.cyan(fileName)}\n` +
|
|
181
|
+
` ${chalk.gray("Location:")} ${filePath}\n` +
|
|
182
|
+
` ${chalk.gray("Queries:")} ${upQueries.length} up, ${downQueries.length} down`,
|
|
183
|
+
);
|
|
198
184
|
} catch (error) {
|
|
199
185
|
spinner.fail("Migration generation failed");
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
186
|
+
|
|
187
|
+
if (error instanceof Error) {
|
|
188
|
+
console.error(chalk.red("\nā Error: " + error.message));
|
|
189
|
+
|
|
190
|
+
if (error.message.includes("entities")) {
|
|
191
|
+
console.error(
|
|
192
|
+
chalk.yellow(
|
|
193
|
+
"\nš” Tip: Make sure your entities are compiled and paths are correct in fragment.json",
|
|
194
|
+
),
|
|
195
|
+
);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
if (error.stack) {
|
|
199
|
+
console.error(chalk.gray("\nStack trace:"));
|
|
200
|
+
console.error(chalk.gray(error.stack));
|
|
201
|
+
}
|
|
202
|
+
} else {
|
|
203
|
+
console.error(chalk.red(String(error)));
|
|
204
|
+
}
|
|
205
|
+
|
|
203
206
|
process.exit(1);
|
|
204
207
|
} finally {
|
|
205
208
|
if (dataSource?.isInitialized) {
|
|
206
|
-
|
|
209
|
+
try {
|
|
210
|
+
await dataSource.destroy();
|
|
211
|
+
} catch (err) {
|
|
212
|
+
// Ignore cleanup errors
|
|
213
|
+
}
|
|
207
214
|
}
|
|
208
215
|
}
|
|
209
216
|
}
|
|
210
217
|
|
|
218
|
+
/**
|
|
219
|
+
* Verify entities are loaded and provide helpful debugging
|
|
220
|
+
*/
|
|
221
|
+
private static verifyEntities(dataSource: DataSource): void {
|
|
222
|
+
const entities = dataSource.entityMetadatas;
|
|
223
|
+
|
|
224
|
+
if (entities.length === 0) {
|
|
225
|
+
throw new Error(
|
|
226
|
+
"No entities found! Make sure:\n" +
|
|
227
|
+
" 1. Your entities are decorated with @Entity()\n" +
|
|
228
|
+
" 2. You've compiled TypeScript: npm run build\n" +
|
|
229
|
+
" 3. Entity paths in fragment.json point to dist/**/*.entity.js\n" +
|
|
230
|
+
" 4. Entity files are named *.entity.ts",
|
|
231
|
+
);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
console.log(chalk.gray(`\nš¦ Loaded ${entities.length} entity/entities:`));
|
|
235
|
+
entities.forEach((entity) => {
|
|
236
|
+
console.log(chalk.gray(` - ${entity.name} (${entity.tableName})`));
|
|
237
|
+
});
|
|
238
|
+
console.log();
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Build a single query statement with proper escaping
|
|
243
|
+
*/
|
|
244
|
+
private static buildQueryStatement(query: {
|
|
245
|
+
query: string;
|
|
246
|
+
parameters?: any[];
|
|
247
|
+
}): string {
|
|
248
|
+
// Escape backslashes, backticks, and dollar signs for template literals
|
|
249
|
+
let sql = query.query
|
|
250
|
+
.replace(/\\/g, "\\\\") // Escape backslashes first
|
|
251
|
+
.replace(/`/g, "\\`") // Escape backticks
|
|
252
|
+
.replace(/\$/g, "\\$") // Escape dollar signs
|
|
253
|
+
.replace(/\r\n/g, " ") // Remove Windows line breaks
|
|
254
|
+
.replace(/\n/g, " ") // Remove Unix line breaks
|
|
255
|
+
.replace(/\s+/g, " ") // Collapse multiple spaces
|
|
256
|
+
.trim();
|
|
257
|
+
|
|
258
|
+
// Handle parameters if present
|
|
259
|
+
if (query.parameters && query.parameters.length > 0) {
|
|
260
|
+
const params = JSON.stringify(query.parameters);
|
|
261
|
+
return `await queryRunner.query(\`${sql}\`, ${params});`;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
return `await queryRunner.query(\`${sql}\`);`;
|
|
265
|
+
}
|
|
266
|
+
|
|
211
267
|
// -----------------------------------------
|
|
212
268
|
// EXISTING METHODS
|
|
213
269
|
// -----------------------------------------
|
|
@@ -465,4 +521,162 @@ export class ${name}${timestamp} implements MigrationInterface {
|
|
|
465
521
|
process.exit(1);
|
|
466
522
|
}
|
|
467
523
|
}
|
|
524
|
+
|
|
525
|
+
private static async checkDatabase(): Promise<void> {
|
|
526
|
+
console.log(chalk.blue("\nš Database Diagnostic Check\n"));
|
|
527
|
+
let dataSource: DataSource | null = null;
|
|
528
|
+
|
|
529
|
+
try {
|
|
530
|
+
// Check fragment.json
|
|
531
|
+
const configPath = path.join(process.cwd(), "fragment.json");
|
|
532
|
+
if (!fs.existsSync(configPath)) {
|
|
533
|
+
console.log(chalk.yellow("ā ļø fragment.json not found"));
|
|
534
|
+
} else {
|
|
535
|
+
console.log(chalk.green("ā fragment.json found"));
|
|
536
|
+
const config = JSON.parse(fs.readFileSync(configPath, "utf-8"));
|
|
537
|
+
console.log(
|
|
538
|
+
chalk.gray(
|
|
539
|
+
` Database type: ${config.database?.type || "not specified"}`,
|
|
540
|
+
),
|
|
541
|
+
);
|
|
542
|
+
console.log(
|
|
543
|
+
chalk.gray(
|
|
544
|
+
` Entity paths: ${JSON.stringify(config.database?.entities || "default")}`,
|
|
545
|
+
),
|
|
546
|
+
);
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
// Check dist folder
|
|
550
|
+
const distPath = path.join(process.cwd(), "dist");
|
|
551
|
+
if (!fs.existsSync(distPath)) {
|
|
552
|
+
console.log(
|
|
553
|
+
chalk.red("\nā dist/ folder not found - run 'npm run build' first!"),
|
|
554
|
+
);
|
|
555
|
+
return;
|
|
556
|
+
} else {
|
|
557
|
+
console.log(chalk.green("\nā dist/ folder exists"));
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
// Check for entity files
|
|
561
|
+
const entityFiles = this.findEntityFiles(distPath);
|
|
562
|
+
if (entityFiles.length === 0) {
|
|
563
|
+
console.log(chalk.red("ā No .entity.js files found in dist/"));
|
|
564
|
+
console.log(
|
|
565
|
+
chalk.yellow(" Make sure your entity files are named *.entity.ts"),
|
|
566
|
+
);
|
|
567
|
+
} else {
|
|
568
|
+
console.log(
|
|
569
|
+
chalk.green(`ā Found ${entityFiles.length} entity file(s):`),
|
|
570
|
+
);
|
|
571
|
+
entityFiles.forEach((f) => console.log(chalk.gray(` - ${f}`)));
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
// Try to connect
|
|
575
|
+
console.log(chalk.blue("\nš” Attempting database connection..."));
|
|
576
|
+
dataSource = await TypeORMModule.initialize();
|
|
577
|
+
console.log(chalk.green("ā Database connection successful"));
|
|
578
|
+
|
|
579
|
+
// Check loaded entities
|
|
580
|
+
const entities = dataSource.entityMetadatas;
|
|
581
|
+
console.log(chalk.blue(`\nš¦ Loaded Entities: ${entities.length}`));
|
|
582
|
+
|
|
583
|
+
if (entities.length === 0) {
|
|
584
|
+
console.log(chalk.red("ā No entities loaded by TypeORM!"));
|
|
585
|
+
console.log(chalk.yellow("\nPossible issues:"));
|
|
586
|
+
console.log(
|
|
587
|
+
chalk.yellow(" 1. Entity files not compiled (run npm run build)"),
|
|
588
|
+
);
|
|
589
|
+
console.log(
|
|
590
|
+
chalk.yellow(" 2. Entity paths in fragment.json incorrect"),
|
|
591
|
+
);
|
|
592
|
+
console.log(chalk.yellow(" 3. Missing @Entity() decorator"));
|
|
593
|
+
} else {
|
|
594
|
+
entities.forEach((entity) => {
|
|
595
|
+
console.log(chalk.cyan(`\n ${entity.name}:`));
|
|
596
|
+
console.log(chalk.gray(` Table: ${entity.tableName}`));
|
|
597
|
+
console.log(chalk.gray(` Columns: ${entity.columns.length}`));
|
|
598
|
+
entity.columns.forEach((col) => {
|
|
599
|
+
console.log(chalk.gray(` - ${col.propertyName}: ${col.type}`));
|
|
600
|
+
});
|
|
601
|
+
});
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
// Check database tables
|
|
605
|
+
console.log(chalk.blue("\nšļø Checking database tables..."));
|
|
606
|
+
const queryRunner = dataSource.createQueryRunner();
|
|
607
|
+
try {
|
|
608
|
+
const tables = await queryRunner.getTables();
|
|
609
|
+
console.log(chalk.green(`ā Database has ${tables.length} table(s):`));
|
|
610
|
+
tables.forEach((t) => console.log(chalk.gray(` - ${t.name}`)));
|
|
611
|
+
} finally {
|
|
612
|
+
await queryRunner.release();
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
console.log(chalk.green("\nā
Database check complete!\n"));
|
|
616
|
+
} catch (error) {
|
|
617
|
+
console.log(chalk.red("\nā Error during check:"));
|
|
618
|
+
console.error(
|
|
619
|
+
chalk.red(error instanceof Error ? error.message : String(error)),
|
|
620
|
+
);
|
|
621
|
+
} finally {
|
|
622
|
+
if (dataSource?.isInitialized) {
|
|
623
|
+
await dataSource.destroy();
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
private static findEntityFiles(dir: string, files: string[] = []): string[] {
|
|
629
|
+
const items = fs.readdirSync(dir);
|
|
630
|
+
|
|
631
|
+
for (const item of items) {
|
|
632
|
+
const fullPath = path.join(dir, item);
|
|
633
|
+
const stat = fs.statSync(fullPath);
|
|
634
|
+
|
|
635
|
+
if (stat.isDirectory()) {
|
|
636
|
+
this.findEntityFiles(fullPath, files);
|
|
637
|
+
} else if (item.endsWith(".entity.js")) {
|
|
638
|
+
files.push(fullPath.replace(process.cwd(), "."));
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
|
|
642
|
+
return files;
|
|
643
|
+
}
|
|
644
|
+
|
|
645
|
+
/**
|
|
646
|
+
* Build the complete migration file template
|
|
647
|
+
*/
|
|
648
|
+
private static buildMigrationTemplate(
|
|
649
|
+
className: string,
|
|
650
|
+
upStatements: string[],
|
|
651
|
+
downStatements: string[],
|
|
652
|
+
isFirstMigration: boolean,
|
|
653
|
+
): string {
|
|
654
|
+
const upBody =
|
|
655
|
+
upStatements.length > 0
|
|
656
|
+
? upStatements.map((s) => ` ${s}`).join("\n")
|
|
657
|
+
: " // No changes";
|
|
658
|
+
|
|
659
|
+
const downBody =
|
|
660
|
+
downStatements.length > 0
|
|
661
|
+
? downStatements.map((s) => ` ${s}`).join("\n")
|
|
662
|
+
: " // No changes";
|
|
663
|
+
|
|
664
|
+
const comment = isFirstMigration
|
|
665
|
+
? " // Initial migration - creates all tables\n"
|
|
666
|
+
: "";
|
|
667
|
+
|
|
668
|
+
return `import { MigrationInterface, QueryRunner } from "typeorm";
|
|
669
|
+
|
|
670
|
+
export class ${className} implements MigrationInterface {
|
|
671
|
+
${comment}
|
|
672
|
+
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
673
|
+
${upBody}
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
public async down(queryRunner: QueryRunner): Promise<void> {
|
|
677
|
+
${downBody}
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
`;
|
|
681
|
+
}
|
|
468
682
|
}
|