Skip to content

Commit

Permalink
Revert "fix(migrate): remove unnecessary await"
Browse files Browse the repository at this point in the history
This reverts commit 0b09049.
  • Loading branch information
Jolg42 committed Nov 25, 2020
1 parent 0b09049 commit 76e899b
Show file tree
Hide file tree
Showing 6 changed files with 306 additions and 71 deletions.
62 changes: 46 additions & 16 deletions src/packages/migrate/src/Migrate.ts
Expand Up @@ -234,8 +234,8 @@ export class Migrate {
return fs.readFileSync(this.schemaPath, 'utf-8')
}

public reset(): Promise<void> {
return this.engine.reset()
public async reset(): Promise<void> {
await this.engine.reset()
}

public async draft({ name = '' }: MigrateOptions = {}): Promise<string> {
Expand All @@ -251,16 +251,16 @@ export class Migrate {
return createMigrationResult.generatedMigrationName!
}

public createMigration(
public async createMigration(
params: EngineArgs.CreateMigrationInput,
): Promise<EngineResults.CreateMigrationOutput> {
return this.engine.createMigration(params)
return await this.engine.createMigration(params)
}

public diagnoseMigrationHistory(): Promise<
public async diagnoseMigrationHistory(): Promise<
EngineResults.DiagnoseMigrationHistoryOutput
> {
return this.engine.diagnoseMigrationHistory({
return await this.engine.diagnoseMigrationHistory({
migrationsDirectoryPath: this.migrationsDirectoryPath,
})
}
Expand All @@ -282,14 +282,15 @@ export class Migrate {
}
}

public listMigrationDirectories(): Promise<
public async listMigrationDirectories(): Promise<
EngineResults.ListMigrationDirectoriesOutput
> {
const listMigrationDirectoriesResult = this.engine.listMigrationDirectories(
const listMigrationDirectoriesResult = await this.engine.listMigrationDirectories(
{
migrationsDirectoryPath: this.migrationsDirectoryPath,
},
)
debug({ listMigrationDirectoriesResult })
return listMigrationDirectoriesResult
}

Expand All @@ -308,33 +309,62 @@ export class Migrate {
return markMigrationApplied
}

public markMigrationRolledBack({
public async markMigrationRolledBack({
migrationId,
}: {
migrationId: string
}): Promise<void> {
return this.engine.markMigrationRolledBack({
const markMigrationRolledBack = await this.engine.markMigrationRolledBack({
migrationName: migrationId,
})
return markMigrationRolledBack
}

public applyScript({ script }: { script: string }): Promise<void> {
return this.engine.applyScript({ script })
public async applyScript({ script }: { script: string }): Promise<void> {
const appliedScriptResult = await this.engine.applyScript({ script })
debug({ appliedScriptResult })
return appliedScriptResult
}

public applyOnly(): Promise<EngineResults.ApplyMigrationsOutput> {
return this.engine.applyMigrations({
public async applyOnly(): Promise<string[]> {
const { appliedMigrationNames } = await this.engine.applyMigrations({
migrationsDirectoryPath: this.migrationsDirectoryPath,
})
debug({ appliedMigrationNames })

return appliedMigrationNames
}

public async evaluateDataLoss(): Promise<
EngineResults.EvaluateDataLossOutput
> {
const datamodel = this.getDatamodel()

const evaluateDataLossResult = await this.engine.evaluateDataLoss({
migrationsDirectoryPath: this.migrationsDirectoryPath,
prismaSchema: datamodel,
})

debug({ evaluateDataLossResult })
return evaluateDataLossResult
}

public evaluateDataLoss(): Promise<EngineResults.EvaluateDataLossOutput> {
public async createAndApply({ name = '' }: MigrateOptions = {}): Promise<
string[]
> {
const datamodel = this.getDatamodel()

return this.engine.evaluateDataLoss({
// success?
const createMigrationResult = await this.createMigration({
migrationsDirectoryPath: this.migrationsDirectoryPath,
migrationName: name,
draft: false,
prismaSchema: datamodel,
})
debug({ createMigrationResult })

// success?
return this.applyOnly()
}

public async push({
Expand Down
2 changes: 1 addition & 1 deletion src/packages/migrate/src/commands/MigrateDeploy.ts
Expand Up @@ -95,7 +95,7 @@ ${chalk.bold('Options')}

await ensureDatabaseExists('apply', true, schemaPath)

const { appliedMigrationNames: migrationIds } = await migrate.applyOnly()
const migrationIds = await migrate.applyOnly()

migrate.stop()

Expand Down
18 changes: 6 additions & 12 deletions src/packages/migrate/src/commands/MigrateDev.ts
Expand Up @@ -223,6 +223,9 @@ ${failedMigrationError.message}`,
}
}
} else {
debug({ drift: diagnoseResult.drift })
debug({ history: diagnoseResult.history })

if (diagnoseResult.drift) {
if (diagnoseResult.drift?.diagnostic === 'migrationFailedToApply') {
// Migration has a problem (failed to cleanly apply to a temporary database) and
Expand Down Expand Up @@ -296,9 +299,7 @@ ${diagnoseResult.drift.error.message}`,

if (diagnoseResult.history) {
if (diagnoseResult.history.diagnostic === 'databaseIsBehind') {
const {
appliedMigrationNames: migrationIdsFromDatabaseIsBehind,
} = await migrate.applyOnly()
migrationIdsFromDatabaseIsBehind = await migrate.applyOnly()
// Inform user about applied migrations now
if (migrationIdsFromDatabaseIsBehind.length > 0) {
console.info(
Expand Down Expand Up @@ -378,16 +379,9 @@ ${diagnoseResult.drift.error.message}`,
}
}

const createMigrationResult = await migrate.createMigration({
migrationsDirectoryPath: migrate.migrationsDirectoryPath,
migrationName: migrationName || '',
draft: false,
prismaSchema: migrate.getDatamodel(),
const migrationIds = await migrate.createAndApply({
name: migrationName,
})
debug({ createMigrationResult })

const { appliedMigrationNames: migrationIds } = await migrate.applyOnly()

migrate.stop()

if (migrationIds.length === 0) {
Expand Down
4 changes: 2 additions & 2 deletions src/packages/migrate/src/commands/MigrateReset.ts
Expand Up @@ -52,7 +52,7 @@ ${chalk.bold('Examples')}
Specify a schema
${chalk.dim(
'$',
)} prisma migrate reset --schema=./schema.prisma --early-access-feature
)} prisma migrate reset --schema=./schema.prisma' --early-access-feature
`)

public async parse(argv: string[]): Promise<string | Error> {
Expand Down Expand Up @@ -137,7 +137,7 @@ ${chalk.bold('Examples')}

await migrate.reset()

const { appliedMigrationNames: migrationIds } = await migrate.applyOnly()
const migrationIds = await migrate.applyOnly()
migrate.stop()

if (migrationIds.length === 0) {
Expand Down
3 changes: 3 additions & 0 deletions src/packages/migrate/src/types.ts
Expand Up @@ -116,6 +116,9 @@ export namespace EngineArgs {
export interface ApplyScriptInput {
script: string
}
export interface InitializeInput {
migrationsDirectoryPath: string
}
export interface DiagnoseMigrationHistoryInput {
migrationsDirectoryPath: string
}
Expand Down

0 comments on commit 76e899b

Please sign in to comment.