Skip to content

Commit

Permalink
fix: migrate roll back in migration procedure
Browse files Browse the repository at this point in the history
  • Loading branch information
alan-francis committed Dec 6, 2023
1 parent e1d6822 commit af90927
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
4 changes: 2 additions & 2 deletions pattern/postgres/migrate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -287,7 +287,7 @@ export class PgMigrate<
CASE task
WHEN 'migrate' THEN
FOR r IN (
SELECT sp_migration,sp_migration_undo,fn_migration_status FROM ${this.infoSchemaLifecycle.sqlNamespace}.${islmGovernance.tableName} WHERE from_state = '${TransitionStatus.NONE}' AND to_state = '${TransitionStatus.SQLLOADED}' AND (target_version_number NOT IN (SELECT state_sort_index FROM ${this.infoSchemaLifecycle.sqlNamespace}.${islmGovernance.tableName} WHERE from_state = '${TransitionStatus.SQLLOADED}' AND to_state = '${TransitionStatus.MIGRATED}')) AND
SELECT sp_migration,sp_migration_undo,fn_migration_status FROM ${this.infoSchemaLifecycle.sqlNamespace}.${islmGovernance.tableName} WHERE from_state = '${TransitionStatus.NONE}' AND to_state = '${TransitionStatus.SQLLOADED}' AND (state_sort_index NOT IN (SELECT state_sort_index FROM ${this.infoSchemaLifecycle.sqlNamespace}.${islmGovernance.tableName} WHERE from_state = '${TransitionStatus.SQLLOADED}' AND to_state = '${TransitionStatus.MIGRATED}')) AND
(target_version_number IS NULL OR state_sort_index<=target_version_number)
ORDER BY state_sort_index
) LOOP
Expand Down Expand Up @@ -323,7 +323,7 @@ export class PgMigrate<
migrate_rb_insertion_sql TEXT;
sp_migration_undo_sql TEXT;
BEGIN
SELECT sp_migration_undo FROM ${this.infoSchemaLifecycle.sqlNamespace}.${islmGovernance.tableName} WHERE from_state = '${TransitionStatus.SQLLOADED}' AND to_state = '${TransitionStatus.MIGRATED}' AND (target_version_number NOT IN (SELECT state_sort_index FROM ${this.infoSchemaLifecycle.sqlNamespace}.${islmGovernance.tableName} WHERE from_state = '${TransitionStatus.MIGRATED}' AND to_state = '${TransitionStatus.ROLLBACK}')) ORDER BY state_sort_index INTO sp_migration_undo_sql;
SELECT sp_migration_undo FROM ${this.infoSchemaLifecycle.sqlNamespace}.${islmGovernance.tableName} WHERE from_state = '${TransitionStatus.SQLLOADED}' AND to_state = '${TransitionStatus.MIGRATED}' AND state_sort_index=target_version_number AND (target_version_number IN (SELECT state_sort_index FROM ${this.infoSchemaLifecycle.sqlNamespace}.${islmGovernance.tableName} WHERE from_state = '${TransitionStatus.SQLLOADED}' AND to_state = '${TransitionStatus.MIGRATED}' ORDER BY state_sort_index DESC LIMIT 1)) INTO sp_migration_undo_sql;
IF sp_migration_undo_sql IS NOT NULL THEN
EXECUTE format('CALL ${this.infoSchemaLifecycle.sqlNamespace}."%s"()', sp_migration_undo_sql);
Expand Down
4 changes: 2 additions & 2 deletions pattern/postgres/migrate_test.fixture.sql
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ BEGIN
CASE task
WHEN 'migrate' THEN
FOR r IN (
SELECT sp_migration,sp_migration_undo,fn_migration_status FROM info_schema_lifecycle.islm_governance WHERE from_state = 'None' AND to_state = 'SQL Loaded' AND (target_version_number NOT IN (SELECT state_sort_index FROM info_schema_lifecycle.islm_governance WHERE from_state = 'SQL Loaded' AND to_state = 'Migrated')) AND
SELECT sp_migration,sp_migration_undo,fn_migration_status FROM info_schema_lifecycle.islm_governance WHERE from_state = 'None' AND to_state = 'SQL Loaded' AND (state_sort_index NOT IN (SELECT state_sort_index FROM info_schema_lifecycle.islm_governance WHERE from_state = 'SQL Loaded' AND to_state = 'Migrated')) AND
(target_version_number IS NULL OR state_sort_index<=target_version_number)
ORDER BY state_sort_index
) LOOP
Expand Down Expand Up @@ -71,7 +71,7 @@ BEGIN
migrate_rb_insertion_sql TEXT;
sp_migration_undo_sql TEXT;
BEGIN
SELECT sp_migration_undo FROM info_schema_lifecycle.islm_governance WHERE from_state = 'SQL Loaded' AND to_state = 'Migrated' AND (target_version_number NOT IN (SELECT state_sort_index FROM info_schema_lifecycle.islm_governance WHERE from_state = 'Migrated' AND to_state = 'Rollback')) ORDER BY state_sort_index INTO sp_migration_undo_sql;
SELECT sp_migration_undo FROM info_schema_lifecycle.islm_governance WHERE from_state = 'SQL Loaded' AND to_state = 'Migrated' AND state_sort_index=target_version_number AND (target_version_number IN (SELECT state_sort_index FROM info_schema_lifecycle.islm_governance WHERE from_state = 'SQL Loaded' AND to_state = 'Migrated' ORDER BY state_sort_index DESC LIMIT 1)) INTO sp_migration_undo_sql;
IF sp_migration_undo_sql IS NOT NULL THEN
EXECUTE format('CALL info_schema_lifecycle."%s"()', sp_migration_undo_sql);

Expand Down

0 comments on commit af90927

Please sign in to comment.