mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 02:48:30 -05:00
[SQL Migration] Consume more detailed migration states (#20490)
* WIP * Add new states * Missed a few spots * Update logic * Update DatabaseMigrationProperties * Test: add mocks * Update a few more references * Fix warnings * Remove mocks * Update cutover logic * Address PR feedback
This commit is contained in:
@@ -158,41 +158,49 @@ export function hasMigrationOperationId(migration: DatabaseMigration | undefined
|
||||
export function canCancelMigration(migration: DatabaseMigration | undefined): boolean {
|
||||
const status = getMigrationStatus(migration);
|
||||
return hasMigrationOperationId(migration)
|
||||
&& (status === loc.MigrationStatus.InProgress ||
|
||||
status === loc.MigrationStatus.Retriable ||
|
||||
status === loc.MigrationStatus.Creating);
|
||||
&& (status === loc.MigrationState.InProgress
|
||||
|| status === loc.MigrationState.Retriable
|
||||
|| status === loc.MigrationState.Creating
|
||||
|| status === loc.MigrationState.ReadyForCutover
|
||||
|| status === loc.MigrationState.UploadingFullBackup
|
||||
|| status === loc.MigrationState.UploadingLogBackup
|
||||
|| status === loc.MigrationState.Restoring);
|
||||
}
|
||||
|
||||
export function canDeleteMigration(migration: DatabaseMigration | undefined): boolean {
|
||||
const status = getMigrationStatus(migration);
|
||||
return status === loc.MigrationStatus.Canceled
|
||||
|| status === loc.MigrationStatus.Failed
|
||||
|| status === loc.MigrationStatus.Retriable
|
||||
|| status === loc.MigrationStatus.Succeeded;
|
||||
return status === loc.MigrationState.Canceled
|
||||
|| status === loc.MigrationState.Failed
|
||||
|| status === loc.MigrationState.Retriable
|
||||
|| status === loc.MigrationState.Succeeded;
|
||||
}
|
||||
|
||||
export function canRetryMigration(migration: DatabaseMigration | undefined): boolean {
|
||||
const status = getMigrationStatus(migration);
|
||||
return status === loc.MigrationStatus.Canceled
|
||||
|| status === loc.MigrationStatus.Retriable
|
||||
|| status === loc.MigrationStatus.Failed
|
||||
|| status === loc.MigrationStatus.Succeeded;
|
||||
return status === loc.MigrationState.Canceled
|
||||
|| status === loc.MigrationState.Retriable
|
||||
|| status === loc.MigrationState.Failed
|
||||
|| status === loc.MigrationState.Succeeded;
|
||||
}
|
||||
|
||||
export function canCutoverMigration(migration: DatabaseMigration | undefined): boolean {
|
||||
const status = getMigrationStatus(migration);
|
||||
return hasMigrationOperationId(migration)
|
||||
&& status === loc.MigrationStatus.InProgress
|
||||
&& isOnlineMigration(migration)
|
||||
&& (status === loc.MigrationState.ReadyForCutover || status === loc.MigrationState.InProgress) // TODO: InProgress condition can be eventually deprecated
|
||||
&& isFullBackupRestored(migration);
|
||||
}
|
||||
|
||||
export function isActiveMigration(migration: DatabaseMigration | undefined): boolean {
|
||||
const status = getMigrationStatus(migration);
|
||||
return status === loc.MigrationStatus.Completing
|
||||
|| status === loc.MigrationStatus.Retriable
|
||||
|| status === loc.MigrationStatus.Creating
|
||||
|| status === loc.MigrationStatus.InProgress;
|
||||
return status === loc.MigrationState.Completing
|
||||
|| status === loc.MigrationState.Retriable
|
||||
|| status === loc.MigrationState.Creating
|
||||
|| status === loc.MigrationState.InProgress
|
||||
|| status === loc.MigrationState.ReadyForCutover
|
||||
|| status === loc.MigrationState.UploadingFullBackup
|
||||
|| status === loc.MigrationState.UploadingLogBackup
|
||||
|| status === loc.MigrationState.Restoring;
|
||||
}
|
||||
|
||||
export function isFullBackupRestored(migration: DatabaseMigration | undefined): boolean {
|
||||
|
||||
Reference in New Issue
Block a user