diff --git a/src/db/migration/V20200704_1605__mantis18935.sql b/src/db/migration/V20200704_1605__mantis18935.sql new file mode 100644 index 000000000..982ab4e36 --- /dev/null +++ b/src/db/migration/V20200704_1605__mantis18935.sql @@ -0,0 +1,69 @@ +--CRIA NOVA COLUNA +declare + column_exists exception; + pragma exception_init (column_exists , -01430); +begin + execute immediate 'ALTER TABLE TARJETA_FIDELIDAD ADD (NUMTARJETA_BACKUP VARCHAR(30))'; + exception when column_exists then null; +end; +/ +-- COPIA OS VALORES +declare + dup_val_on_index exception; + except_02291 exception; + pragma exception_init (dup_val_on_index , -00001); + pragma exception_init (except_02291 , -02291); +begin + execute immediate 'UPDATE TARJETA_FIDELIDAD SET NUMTARJETA_BACKUP = NUMTARJETA'; + exception + when dup_val_on_index then null; + when except_02291 then null; +end; +/ +--LIMPA O COLUNA +declare + dup_val_on_index exception; + except_02291 exception; + pragma exception_init (dup_val_on_index , -00001); + pragma exception_init (except_02291 , -02291); +begin + execute immediate 'UPDATE TARJETA_FIDELIDAD SET NUMTARJETA = NULL'; + exception + when dup_val_on_index then null; + when except_02291 then null; +end; +/ +--ALTERA A COLUNA +declare + column_exists exception; + pragma exception_init (column_exists , -01430); +begin + execute immediate 'ALTER TABLE TARJETA_FIDELIDAD MODIFY (NUMTARJETA VARCHAR(30))'; + exception when column_exists then null; +end; +/ +--ATUALIZA A COLUNA ANTIGA COM OS VALORES DA NOVA +declare + dup_val_on_index exception; + except_02291 exception; + pragma exception_init (dup_val_on_index , -00001); + pragma exception_init (except_02291 , -02291); +begin + execute immediate 'UPDATE TARJETA_FIDELIDAD SET NUMTARJETA = NUMTARJETA_BACKUP'; + exception + when dup_val_on_index then null; + when except_02291 then null; +end; +/ +-- ALTER TABLE DROP COLUMN +declare + object_exists exception; + except_00904 exception; + pragma exception_init (object_exists , -01430); + pragma exception_init (except_00904 , -00904); +begin + execute immediate 'ALTER TABLE TARJETA_FIDELIDAD DROP COLUMN NUMTARJETA_BACKUP'; + exception + when object_exists then null; + when except_00904 then null; +end; diff --git a/src/db/postgresql/migration/V20200704_1605__mantis18935.sql b/src/db/postgresql/migration/V20200704_1605__mantis18935.sql new file mode 100644 index 000000000..1fc8a9857 --- /dev/null +++ b/src/db/postgresql/migration/V20200704_1605__mantis18935.sql @@ -0,0 +1,47 @@ +--CRIA NOVA COLUNA +DO $$ +BEGIN + ALTER TABLE TARJETA_FIDELIDAD ADD (NUMTARJETA_BACKUP VARCHAR(30)); + EXCEPTION WHEN duplicate_column THEN NULL; +END +$$; +/ +-- COPIA OS VALORES +DO $$ +BEGIN + UPDATE TARJETA_FIDELIDAD SET NUMTARJETA_BACKUP = NUMTARJETA; + EXCEPTION WHEN duplicate_column THEN NULL; +END +$$; +/ +--LIMPA O COLUNA +DO $$ +BEGIN + UPDATE TARJETA_FIDELIDAD SET NUMTARJETA = NULL; + EXCEPTION WHEN duplicate_column THEN NULL; +END +$$; +/ +--ALTERA A COLUNA +DO $$ +BEGIN + ALTER TABLE TARJETA_FIDELIDAD MODIFY (NUMTARJETA VARCHAR(30)); + EXCEPTION WHEN duplicate_column THEN NULL; +END +$$; +/ +--ATUALIZA A COLUNA ANTIGA COM OS VALORES DA NOVA +DO $$ +BEGIN + UPDATE TARJETA_FIDELIDAD SET NUMTARJETA = NUMTARJETA_BACKUP; + EXCEPTION WHEN duplicate_column THEN NULL; +END +$$; +/ +-- ALTER TABLE DROP COLUMN +DO $$ +BEGIN + ALTER TABLE TARJETA_FIDELIDAD DROP COLUMN NUMTARJETA_BACKUP; + EXCEPTION WHEN duplicate_column THEN NULL; +END +$$; \ No newline at end of file