MCPcopy
hub / github.com/prisma/prisma / createMigration

Method createMigration

packages/migrate/src/Migrate.ts:73–119  ·  view source on GitHub ↗
(
    params: Omit<EngineArgs.CreateMigrationInput, 'migrationsList' | 'filters'>,
  )

Source from the content-addressed store, hash-verified

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,

Callers

nothing calls this directly

Calls 6

listMigrationsFunction · 0.90
createMigrationFunction · 0.90
writeMigrationScriptFunction · 0.90
writeMigrationLockfileFunction · 0.90
catchMethod · 0.80
createMigrationMethod · 0.65

Tested by

no test coverage detected