fix: Make MySQL migration for nano id change compatible with version 5.7 (#6498)
* fix: Make migration for MySQL compatible with version 5.7 * fix: Correct syntax * fix: Syntax for primary key creation * fix: Remove unnecessary constraint statement * fix: Name columns for sqlite migration to prevent issues * ci: Always run DB tests with table-prefix and alt-schema * add tablePrefix to migrations (mysql not fixed) * fix character_set on mysql migrations * fix mysql collation version difference * cater for mariadb collations --------- Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in> Co-authored-by: Michael Auerswald <michael.auerswald@gmail.com>
This commit is contained in:
@@ -16,7 +16,7 @@ export class MigrateIntegerKeysToString1690000000000 implements ReversibleMigrat
|
||||
);
|
||||
await queryRunner.query(`DROP SEQUENCE IF EXISTS ${tablePrefix}workflow_entity_id_seq;`);
|
||||
await queryRunner.query(
|
||||
`CREATE UNIQUE INDEX "pk_workflow_entity_id" ON ${tablePrefix}workflow_entity ("id");`,
|
||||
`CREATE UNIQUE INDEX "pk_${tablePrefix}workflow_entity_id" ON ${tablePrefix}workflow_entity ("id");`,
|
||||
);
|
||||
|
||||
await queryRunner.query(`ALTER TABLE ${tablePrefix}tag_entity RENAME COLUMN id to tmp_id;`);
|
||||
@@ -26,9 +26,9 @@ export class MigrateIntegerKeysToString1690000000000 implements ReversibleMigrat
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE ${tablePrefix}tag_entity ALTER COLUMN tmp_id DROP DEFAULT;`,
|
||||
);
|
||||
await queryRunner.query(`DROP SEQUENCE IF EXISTS tag_entity_id_seq;`);
|
||||
await queryRunner.query(`DROP SEQUENCE IF EXISTS ${tablePrefix}tag_entity_id_seq;`);
|
||||
await queryRunner.query(
|
||||
`CREATE UNIQUE INDEX "pk_tag_entity_id" ON ${tablePrefix}tag_entity ("id");`,
|
||||
`CREATE UNIQUE INDEX "pk_${tablePrefix}tag_entity_id" ON ${tablePrefix}tag_entity ("id");`,
|
||||
);
|
||||
|
||||
await queryRunner.query(
|
||||
@@ -54,25 +54,25 @@ export class MigrateIntegerKeysToString1690000000000 implements ReversibleMigrat
|
||||
`ALTER TABLE ${tablePrefix}workflows_tags ALTER COLUMN "tagId" SET NOT NULL;`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE ${tablePrefix}workflows_tags DROP CONSTRAINT IF EXISTS "FK_31140eb41f019805b40d0087449";`,
|
||||
`ALTER TABLE ${tablePrefix}workflows_tags DROP CONSTRAINT IF EXISTS "FK_${tablePrefix}31140eb41f019805b40d0087449";`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE ${tablePrefix}workflows_tags DROP CONSTRAINT IF EXISTS "FK_5e29bfe9e22c5d6567f509d4a46";`,
|
||||
`ALTER TABLE ${tablePrefix}workflows_tags DROP CONSTRAINT IF EXISTS "FK_${tablePrefix}5e29bfe9e22c5d6567f509d4a46";`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`CREATE UNIQUE INDEX "pk_workflows_tags" ON ${tablePrefix}workflows_tags ("workflowId","tagId");`,
|
||||
`CREATE UNIQUE INDEX "pk_${tablePrefix}workflows_tags" ON ${tablePrefix}workflows_tags ("workflowId","tagId");`,
|
||||
);
|
||||
await queryRunner.query(`DROP INDEX IF EXISTS "idx_31140eb41f019805b40d008744";`);
|
||||
await queryRunner.query(`ALTER TABLE ${tablePrefix}workflows_tags DROP CONSTRAINT "PK_a60448a90e51a114e95e2a125b3",
|
||||
ADD CONSTRAINT "pk_workflows_tags" PRIMARY KEY USING INDEX "pk_workflows_tags";`);
|
||||
await queryRunner.query(`DROP INDEX IF EXISTS "idx_${tablePrefix}31140eb41f019805b40d008744";`);
|
||||
await queryRunner.query(`ALTER TABLE ${tablePrefix}workflows_tags DROP CONSTRAINT IF EXISTS "PK_${tablePrefix}a60448a90e51a114e95e2a125b3",
|
||||
ADD CONSTRAINT "pk_${tablePrefix}workflows_tags" PRIMARY KEY USING INDEX "pk_${tablePrefix}workflows_tags";`);
|
||||
await queryRunner.query(
|
||||
`CREATE INDEX "idx_workflows_tags_workflow_id" ON ${tablePrefix}workflows_tags ("workflowId");`,
|
||||
`CREATE INDEX "idx_${tablePrefix}workflows_tags_workflow_id" ON ${tablePrefix}workflows_tags ("workflowId");`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE ${tablePrefix}workflows_tags ADD CONSTRAINT "fk_workflows_tags_workflow_id" FOREIGN KEY ("workflowId") REFERENCES workflow_entity(id) ON DELETE CASCADE ON UPDATE NO ACTION;`,
|
||||
`ALTER TABLE ${tablePrefix}workflows_tags ADD CONSTRAINT "fk_${tablePrefix}workflows_tags_workflow_id" FOREIGN KEY ("workflowId") REFERENCES ${tablePrefix}workflow_entity(id) ON DELETE CASCADE ON UPDATE NO ACTION;`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE ${tablePrefix}workflows_tags ADD CONSTRAINT "fk_workflows_tags_tag_id" FOREIGN KEY ("tagId") REFERENCES tag_entity(id) ON DELETE CASCADE ON UPDATE NO ACTION;`,
|
||||
`ALTER TABLE ${tablePrefix}workflows_tags ADD CONSTRAINT "fk_${tablePrefix}workflows_tags_tag_id" FOREIGN KEY ("tagId") REFERENCES ${tablePrefix}tag_entity(id) ON DELETE CASCADE ON UPDATE NO ACTION;`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE ${tablePrefix}workflows_tags DROP COLUMN "tmp_workflowId";`,
|
||||
@@ -92,16 +92,18 @@ export class MigrateIntegerKeysToString1690000000000 implements ReversibleMigrat
|
||||
`ALTER TABLE ${tablePrefix}shared_workflow ALTER COLUMN "workflowId" SET NOT NULL;`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`CREATE UNIQUE INDEX "pk_shared_workflow_id" ON ${tablePrefix}shared_workflow ("userId","workflowId");`,
|
||||
);
|
||||
await queryRunner.query(`DROP INDEX IF EXISTS "IDX_65a0933c0f19d278881653bf81d35064";`);
|
||||
await queryRunner.query(`ALTER TABLE ${tablePrefix}shared_workflow DROP CONSTRAINT "PK_cc5d5a71c7b2591f5154ffb0c785e85e",
|
||||
ADD CONSTRAINT "pk_shared_workflow_id" PRIMARY KEY USING INDEX "pk_shared_workflow_id";`);
|
||||
await queryRunner.query(
|
||||
`CREATE INDEX "idx_shared_workflow_workflow_id" ON ${tablePrefix}shared_workflow ("workflowId");`,
|
||||
`CREATE UNIQUE INDEX "pk_${tablePrefix}shared_workflow_id" ON ${tablePrefix}shared_workflow ("userId","workflowId");`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE ${tablePrefix}shared_workflow ADD CONSTRAINT "fk_shared_workflow_workflow_id" FOREIGN KEY ("workflowId") REFERENCES workflow_entity(id) ON DELETE CASCADE ON UPDATE NO ACTION;`,
|
||||
`DROP INDEX IF EXISTS "IDX_${tablePrefix}65a0933c0f19d278881653bf81d35064";`,
|
||||
);
|
||||
await queryRunner.query(`ALTER TABLE ${tablePrefix}shared_workflow DROP CONSTRAINT "PK_${tablePrefix}cc5d5a71c7b2591f5154ffb0c785e85e",
|
||||
ADD CONSTRAINT "pk_${tablePrefix}shared_workflow_id" PRIMARY KEY USING INDEX "pk_${tablePrefix}shared_workflow_id";`);
|
||||
await queryRunner.query(
|
||||
`CREATE INDEX "idx_${tablePrefix}shared_workflow_workflow_id" ON ${tablePrefix}shared_workflow ("workflowId");`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE ${tablePrefix}shared_workflow ADD CONSTRAINT "fk_${tablePrefix}shared_workflow_workflow_id" FOREIGN KEY ("workflowId") REFERENCES ${tablePrefix}workflow_entity(id) ON DELETE CASCADE ON UPDATE NO ACTION;`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE ${tablePrefix}shared_workflow DROP COLUMN "tmp_workflowId";`,
|
||||
@@ -120,15 +122,15 @@ export class MigrateIntegerKeysToString1690000000000 implements ReversibleMigrat
|
||||
`ALTER TABLE ${tablePrefix}workflow_statistics ALTER COLUMN "workflowId" SET NOT NULL;`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`CREATE UNIQUE INDEX "pk_workflow_statistics" ON ${tablePrefix}workflow_statistics ("workflowId","name");`,
|
||||
`CREATE UNIQUE INDEX "pk_${tablePrefix}workflow_statistics" ON ${tablePrefix}workflow_statistics ("workflowId","name");`,
|
||||
);
|
||||
await queryRunner.query(`ALTER TABLE ${tablePrefix}workflow_statistics DROP CONSTRAINT IF EXISTS "workflow_statistics_pkey",
|
||||
ADD CONSTRAINT "pk_workflow_statistics" PRIMARY KEY USING INDEX "pk_workflow_statistics";`);
|
||||
await queryRunner.query(`ALTER TABLE ${tablePrefix}workflow_statistics DROP CONSTRAINT IF EXISTS "${tablePrefix}workflow_statistics_pkey",
|
||||
ADD CONSTRAINT "pk_${tablePrefix}workflow_statistics" PRIMARY KEY USING INDEX "pk_${tablePrefix}workflow_statistics";`);
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE ${tablePrefix}workflow_statistics DROP COLUMN "tmp_workflowId";`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE ${tablePrefix}workflow_statistics ADD CONSTRAINT "fk_workflow_statistics_workflow_id" FOREIGN KEY ("workflowId") REFERENCES workflow_entity(id) ON DELETE CASCADE ON UPDATE NO ACTION;`,
|
||||
`ALTER TABLE ${tablePrefix}workflow_statistics ADD CONSTRAINT "fk_${tablePrefix}workflow_statistics_workflow_id" FOREIGN KEY ("workflowId") REFERENCES ${tablePrefix}workflow_entity(id) ON DELETE CASCADE ON UPDATE NO ACTION;`,
|
||||
);
|
||||
|
||||
await queryRunner.query(
|
||||
@@ -147,7 +149,7 @@ export class MigrateIntegerKeysToString1690000000000 implements ReversibleMigrat
|
||||
`ALTER TABLE ${tablePrefix}webhook_entity DROP COLUMN "tmp_workflowId";`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE ${tablePrefix}webhook_entity ADD CONSTRAINT "fk_webhook_entity_workflow_id" FOREIGN KEY ("workflowId") REFERENCES workflow_entity(id) ON DELETE CASCADE ON UPDATE NO ACTION;`,
|
||||
`ALTER TABLE ${tablePrefix}webhook_entity ADD CONSTRAINT "fk_${tablePrefix}webhook_entity_workflow_id" FOREIGN KEY ("workflowId") REFERENCES ${tablePrefix}workflow_entity(id) ON DELETE CASCADE ON UPDATE NO ACTION;`,
|
||||
);
|
||||
|
||||
await queryRunner.query(
|
||||
@@ -160,27 +162,27 @@ export class MigrateIntegerKeysToString1690000000000 implements ReversibleMigrat
|
||||
await queryRunner.query(
|
||||
`UPDATE ${tablePrefix}execution_entity SET "workflowId" = "tmp_workflowId"::text;`,
|
||||
);
|
||||
await queryRunner.query(`DROP INDEX IF EXISTS "IDX_d160d4771aba5a0d78943edbe3";`);
|
||||
await queryRunner.query(`DROP INDEX IF EXISTS "IDX_4f474ac92be81610439aaad61e";`);
|
||||
await queryRunner.query(`DROP INDEX IF EXISTS "IDX_58154df94c686818c99fb754ce";`);
|
||||
await queryRunner.query(`DROP INDEX IF EXISTS "IDX_${tablePrefix}d160d4771aba5a0d78943edbe3";`);
|
||||
await queryRunner.query(`DROP INDEX IF EXISTS "IDX_${tablePrefix}4f474ac92be81610439aaad61e";`);
|
||||
await queryRunner.query(`DROP INDEX IF EXISTS "IDX_${tablePrefix}58154df94c686818c99fb754ce";`);
|
||||
// -- index idx_33228da131bb1112247cf52a42 is a duplicate of IDX_33228da131bb1112247cf52a42
|
||||
await queryRunner.query(`DROP INDEX IF EXISTS "idx_33228da131bb1112247cf52a42";`);
|
||||
await queryRunner.query(`DROP INDEX IF EXISTS "idx_${tablePrefix}33228da131bb1112247cf52a42";`);
|
||||
await queryRunner.query(
|
||||
`CREATE INDEX "idx_execution_entity_workflow_id_id" ON ${tablePrefix}execution_entity ("workflowId","id");`,
|
||||
`CREATE INDEX "idx_${tablePrefix}execution_entity_workflow_id_id" ON ${tablePrefix}execution_entity ("workflowId","id");`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE ${tablePrefix}execution_entity DROP COLUMN "tmp_workflowId";`,
|
||||
);
|
||||
// -- FK was missing in prev schema - should it be added?
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE ${tablePrefix}execution_entity ADD CONSTRAINT "fk_execution_entity_workflow_id" FOREIGN KEY ("workflowId") REFERENCES workflow_entity(id) ON DELETE CASCADE ON UPDATE NO ACTION;`,
|
||||
`ALTER TABLE ${tablePrefix}execution_entity ADD CONSTRAINT "fk_${tablePrefix}execution_entity_workflow_id" FOREIGN KEY ("workflowId") REFERENCES ${tablePrefix}workflow_entity(id) ON DELETE CASCADE ON UPDATE NO ACTION;`,
|
||||
);
|
||||
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE ${tablePrefix}workflow_entity DROP CONSTRAINT IF EXISTS "pk_eded7d72664448da7745d551207";`,
|
||||
`ALTER TABLE ${tablePrefix}workflow_entity DROP CONSTRAINT IF EXISTS "pk_${tablePrefix}eded7d72664448da7745d551207";`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE ${tablePrefix}tag_entity DROP CONSTRAINT IF EXISTS "PK_7a50a9b74ae6855c0dcaee25052";`,
|
||||
`ALTER TABLE ${tablePrefix}tag_entity DROP CONSTRAINT IF EXISTS "PK_${tablePrefix}7a50a9b74ae6855c0dcaee25052";`,
|
||||
);
|
||||
await queryRunner.query(`ALTER TABLE ${tablePrefix}workflow_entity DROP COLUMN tmp_id;`);
|
||||
await queryRunner.query(`ALTER TABLE ${tablePrefix}tag_entity DROP COLUMN tmp_id;`);
|
||||
@@ -200,9 +202,9 @@ export class MigrateIntegerKeysToString1690000000000 implements ReversibleMigrat
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE ${tablePrefix}credentials_entity ALTER COLUMN tmp_id DROP DEFAULT;`,
|
||||
);
|
||||
await queryRunner.query(`DROP SEQUENCE IF EXISTS credentials_entity_id_seq;`);
|
||||
await queryRunner.query(`DROP SEQUENCE IF EXISTS ${tablePrefix}credentials_entity_id_seq;`);
|
||||
await queryRunner.query(
|
||||
`CREATE UNIQUE INDEX "pk_credentials_entity_id" ON ${tablePrefix}credentials_entity ("id");`,
|
||||
`CREATE UNIQUE INDEX "pk_${tablePrefix}credentials_entity_id" ON ${tablePrefix}credentials_entity ("id");`,
|
||||
);
|
||||
|
||||
await queryRunner.query(
|
||||
@@ -218,23 +220,25 @@ export class MigrateIntegerKeysToString1690000000000 implements ReversibleMigrat
|
||||
`ALTER TABLE ${tablePrefix}shared_credentials ALTER COLUMN "credentialsId" SET NOT NULL;`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`CREATE UNIQUE INDEX "pk_shared_credentials_id" ON ${tablePrefix}shared_credentials ("userId","credentialsId");`,
|
||||
);
|
||||
await queryRunner.query(`DROP INDEX IF EXISTS "IDX_829d16efa0e265cb076d50eca8d21733";`);
|
||||
await queryRunner.query(`ALTER TABLE ${tablePrefix}shared_credentials DROP CONSTRAINT "PK_10dd1527ffb639609be7aadd98f628c6",
|
||||
ADD CONSTRAINT "pk_shared_credentials_id" PRIMARY KEY USING INDEX "pk_shared_credentials_id";`);
|
||||
await queryRunner.query(
|
||||
`CREATE INDEX "idx_shared_credentials_credentials_id" ON ${tablePrefix}shared_credentials ("credentialsId");`,
|
||||
`CREATE UNIQUE INDEX "pk_${tablePrefix}shared_credentials_id" ON ${tablePrefix}shared_credentials ("userId","credentialsId");`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE ${tablePrefix}shared_credentials ADD CONSTRAINT "fk_shared_credentials_credentials_id" FOREIGN KEY ("credentialsId") REFERENCES credentials_entity(id) ON DELETE CASCADE ON UPDATE NO ACTION;`,
|
||||
`DROP INDEX IF EXISTS "IDX_${tablePrefix}829d16efa0e265cb076d50eca8d21733";`,
|
||||
);
|
||||
await queryRunner.query(`ALTER TABLE ${tablePrefix}shared_credentials DROP CONSTRAINT "PK_${tablePrefix}10dd1527ffb639609be7aadd98f628c6",
|
||||
ADD CONSTRAINT "pk_${tablePrefix}shared_credentials_id" PRIMARY KEY USING INDEX "pk_${tablePrefix}shared_credentials_id";`);
|
||||
await queryRunner.query(
|
||||
`CREATE INDEX "idx_${tablePrefix}shared_credentials_credentials_id" ON ${tablePrefix}shared_credentials ("credentialsId");`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE ${tablePrefix}shared_credentials ADD CONSTRAINT "fk_${tablePrefix}shared_credentials_credentials_id" FOREIGN KEY ("credentialsId") REFERENCES ${tablePrefix}credentials_entity(id) ON DELETE CASCADE ON UPDATE NO ACTION;`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE ${tablePrefix}shared_credentials DROP COLUMN "tmp_credentialsId";`,
|
||||
);
|
||||
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE ${tablePrefix}credentials_entity DROP CONSTRAINT IF EXISTS "pk_814c3d3c36e8a27fa8edb761b0e";`,
|
||||
`ALTER TABLE ${tablePrefix}credentials_entity DROP CONSTRAINT IF EXISTS "pk_${tablePrefix}814c3d3c36e8a27fa8edb761b0e";`,
|
||||
);
|
||||
await queryRunner.query(`ALTER TABLE ${tablePrefix}credentials_entity DROP COLUMN tmp_id;`);
|
||||
await queryRunner.query(`ALTER TABLE ${tablePrefix}credentials_entity ADD PRIMARY KEY (id);`);
|
||||
@@ -246,12 +250,12 @@ export class MigrateIntegerKeysToString1690000000000 implements ReversibleMigrat
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE ${tablePrefix}variables ALTER COLUMN tmp_id DROP DEFAULT;`,
|
||||
);
|
||||
await queryRunner.query(`DROP SEQUENCE IF EXISTS variables_id_seq;`);
|
||||
await queryRunner.query(`DROP SEQUENCE IF EXISTS ${tablePrefix}variables_id_seq;`);
|
||||
await queryRunner.query(
|
||||
`CREATE UNIQUE INDEX "pk_variables_id" ON ${tablePrefix}variables ("id");`,
|
||||
`CREATE UNIQUE INDEX "pk_${tablePrefix}variables_id" ON ${tablePrefix}variables ("id");`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE ${tablePrefix}variables DROP CONSTRAINT IF EXISTS "variables_pkey";`,
|
||||
`ALTER TABLE ${tablePrefix}variables DROP CONSTRAINT IF EXISTS "${tablePrefix}variables_pkey";`,
|
||||
);
|
||||
await queryRunner.query(`ALTER TABLE ${tablePrefix}variables DROP COLUMN tmp_id;`);
|
||||
await queryRunner.query(`ALTER TABLE ${tablePrefix}variables ADD PRIMARY KEY (id);`);
|
||||
|
||||
Reference in New Issue
Block a user