(
params: Omit<EngineArgs.CreateMigrationInput, 'migrationsList' | 'filters'>,
)
| 71 | } |
| 72 | |
| 73 | public async createMigration( |
| 74 | params: Omit<EngineArgs.CreateMigrationInput, 'migrationsList' | 'filters'>, |
| 75 | ): Promise<{ generatedMigrationName: string | undefined }> { |
| 76 | if (!this.migrationsDirectoryPath) throw new Error('this.migrationsDirectoryPath is undefined') |
| 77 | |
| 78 | const migrationsList = await listMigrations(this.migrationsDirectoryPath, this.shadowDbInitScript) |
| 79 | const { connectorType, generatedMigrationName, extension, migrationScript } = await this.engine.createMigration({ |
| 80 | ...params, |
| 81 | migrationsList, |
| 82 | filters: this.schemaFilter, |
| 83 | }) |
| 84 | const { baseDir, lockfile } = migrationsList |
| 85 | |
| 86 | if (migrationScript === null) { |
| 87 | return { |
| 88 | generatedMigrationName: undefined, |
| 89 | } |
| 90 | } |
| 91 | |
| 92 | const directoryPath = await createMigration({ |
| 93 | baseDir, |
| 94 | generatedMigrationName, |
| 95 | }).catch((e: Error) => { |
| 96 | throw new Error(`Failed to create a new migration directory: ${e.message}`) |
| 97 | }) |
| 98 | |
| 99 | await writeMigrationScript({ |
| 100 | baseDir, |
| 101 | extension, |
| 102 | migrationName: generatedMigrationName, |
| 103 | script: migrationScript, |
| 104 | }).catch((e: Error) => { |
| 105 | throw new Error(`Failed to write migration script to ${directoryPath}: ${e.message}`) |
| 106 | }) |
| 107 | |
| 108 | await writeMigrationLockfile({ |
| 109 | baseDir, |
| 110 | connectorType, |
| 111 | lockfile, |
| 112 | }).catch((e: Error) => { |
| 113 | throw new Error(`Failed to write the migration lock file to ${baseDir}: ${e.message}`) |
| 114 | }) |
| 115 | |
| 116 | return { |
| 117 | generatedMigrationName, |
| 118 | } |
| 119 | } |
| 120 | |
| 121 | public async diagnoseMigrationHistory({ |
| 122 | optInToShadowDatabase, |
nothing calls this directly
no test coverage detected