From 677126b697aae92752bb662042a75ccd418719af Mon Sep 17 00:00:00 2001 From: Valya Bullions Date: Tue, 14 Feb 2023 13:54:34 +0000 Subject: [PATCH] feat: execution metadata migrations --- ...4133106779-CreateExecutionMetadataTable.ts | 31 +++++++++++++++++++ .../src/databases/migrations/mysqldb/index.ts | 4 ++- ...4133106778-CreateExecutionMetadataTable.ts | 30 ++++++++++++++++++ .../databases/migrations/postgresdb/index.ts | 4 ++- ...4133106777-CreateExecutionMetadataTable.ts | 12 +++---- 5 files changed, 73 insertions(+), 8 deletions(-) create mode 100644 packages/cli/src/databases/migrations/mysqldb/1674133106779-CreateExecutionMetadataTable.ts create mode 100644 packages/cli/src/databases/migrations/postgresdb/1674133106778-CreateExecutionMetadataTable.ts diff --git a/packages/cli/src/databases/migrations/mysqldb/1674133106779-CreateExecutionMetadataTable.ts b/packages/cli/src/databases/migrations/mysqldb/1674133106779-CreateExecutionMetadataTable.ts new file mode 100644 index 0000000000..5f9ec5b934 --- /dev/null +++ b/packages/cli/src/databases/migrations/mysqldb/1674133106779-CreateExecutionMetadataTable.ts @@ -0,0 +1,31 @@ +import { MigrationInterface, QueryRunner, Table } from 'typeorm'; +import { getTablePrefix, logMigrationEnd, logMigrationStart } from '@db/utils/migrationHelpers'; +import config from '@/config'; + +export class CreateExecutionMetadataTable1674133106779 implements MigrationInterface { + name = 'CreateExecutionMetadataTable1674133106779'; + + public async up(queryRunner: QueryRunner): Promise { + logMigrationStart(this.name); + const tablePrefix = getTablePrefix(); + + await queryRunner.query( + `CREATE TABLE ${tablePrefix}execution_metadata ( + id int(11) auto_increment NOT NULL PRIMARY KEY, + executionId int(11) NOT NULL, + \`key\` TEXT NOT NULL, + value TEXT NOT NULL, + CONSTRAINT ${tablePrefix}execution_metadata_FK FOREIGN KEY (executionId) REFERENCES ${tablePrefix}execution_entity(id) ON DELETE CASCADE + ) + ENGINE=InnoDB`, + ); + + logMigrationEnd(this.name); + } + + public async down(queryRunner: QueryRunner): Promise { + const tablePrefix = getTablePrefix(); + + await queryRunner.query(`DROP TABLE "${tablePrefix}execution_metadata"`); + } +} diff --git a/packages/cli/src/databases/migrations/mysqldb/index.ts b/packages/cli/src/databases/migrations/mysqldb/index.ts index 2c25db44b1..4e427cadcb 100644 --- a/packages/cli/src/databases/migrations/mysqldb/index.ts +++ b/packages/cli/src/databases/migrations/mysqldb/index.ts @@ -31,6 +31,7 @@ import { MessageEventBusDestinations1671535397530 } from './1671535397530-Messag import { DeleteExecutionsWithWorkflows1673268682475 } from './1673268682475-DeleteExecutionsWithWorkflows'; import { CreateLdapEntities1674509946020 } from './1674509946020-CreateLdapEntities'; import { PurgeInvalidWorkflowConnections1675940580449 } from './1675940580449-PurgeInvalidWorkflowConnections'; +import { CreateExecutionMetadataTable1674133106779 } from './1674133106779-CreateExecutionMetadataTable'; export const mysqlMigrations = [ InitialMigration1588157391238, @@ -65,5 +66,6 @@ export const mysqlMigrations = [ MessageEventBusDestinations1671535397530, DeleteExecutionsWithWorkflows1673268682475, CreateLdapEntities1674509946020, - PurgeInvalidWorkflowConnections1675940580449 + PurgeInvalidWorkflowConnections1675940580449, + CreateExecutionMetadataTable1674133106779, ]; diff --git a/packages/cli/src/databases/migrations/postgresdb/1674133106778-CreateExecutionMetadataTable.ts b/packages/cli/src/databases/migrations/postgresdb/1674133106778-CreateExecutionMetadataTable.ts new file mode 100644 index 0000000000..d77871ab68 --- /dev/null +++ b/packages/cli/src/databases/migrations/postgresdb/1674133106778-CreateExecutionMetadataTable.ts @@ -0,0 +1,30 @@ +import { MigrationInterface, QueryRunner, Table } from 'typeorm'; +import { getTablePrefix, logMigrationEnd, logMigrationStart } from '@db/utils/migrationHelpers'; +import config from '@/config'; + +export class CreateExecutionMetadataTable1674133106778 implements MigrationInterface { + name = 'CreateExecutionMetadataTable1674133106778'; + + public async up(queryRunner: QueryRunner): Promise { + logMigrationStart(this.name); + const tablePrefix = getTablePrefix(); + + await queryRunner.query( + `CREATE TABLE ${tablePrefix}execution_metadata ( + "id" serial4 NOT NULL PRIMARY KEY, + "executionId" int4 NOT NULL, + "key" text NOT NULL, + "value" text NOT NULL, + CONSTRAINT ${tablePrefix}execution_metadata_fk FOREIGN KEY ("executionId") REFERENCES ${tablePrefix}execution_entity(id) ON DELETE CASCADE + )`, + ); + + logMigrationEnd(this.name); + } + + public async down(queryRunner: QueryRunner): Promise { + const tablePrefix = getTablePrefix(); + + await queryRunner.query(`DROP TABLE "${tablePrefix}execution_metadata"`); + } +} diff --git a/packages/cli/src/databases/migrations/postgresdb/index.ts b/packages/cli/src/databases/migrations/postgresdb/index.ts index dde85c808b..fe3fec5501 100644 --- a/packages/cli/src/databases/migrations/postgresdb/index.ts +++ b/packages/cli/src/databases/migrations/postgresdb/index.ts @@ -29,6 +29,7 @@ import { MessageEventBusDestinations1671535397530 } from './1671535397530-Messag import { DeleteExecutionsWithWorkflows1673268682475 } from './1673268682475-DeleteExecutionsWithWorkflows'; import { CreateLdapEntities1674509946020 } from './1674509946020-CreateLdapEntities'; import { PurgeInvalidWorkflowConnections1675940580449 } from './1675940580449-PurgeInvalidWorkflowConnections'; +import { CreateExecutionMetadataTable1674133106778 } from './1674133106778-CreateExecutionMetadataTable'; export const postgresMigrations = [ InitialMigration1587669153312, @@ -61,5 +62,6 @@ export const postgresMigrations = [ MessageEventBusDestinations1671535397530, DeleteExecutionsWithWorkflows1673268682475, CreateLdapEntities1674509946020, - PurgeInvalidWorkflowConnections1675940580449 + PurgeInvalidWorkflowConnections1675940580449, + CreateExecutionMetadataTable1674133106778, ]; diff --git a/packages/cli/src/databases/migrations/sqlite/1674133106777-CreateExecutionMetadataTable.ts b/packages/cli/src/databases/migrations/sqlite/1674133106777-CreateExecutionMetadataTable.ts index 8bf2dc1eea..101b6a9094 100644 --- a/packages/cli/src/databases/migrations/sqlite/1674133106777-CreateExecutionMetadataTable.ts +++ b/packages/cli/src/databases/migrations/sqlite/1674133106777-CreateExecutionMetadataTable.ts @@ -1,5 +1,5 @@ import { MigrationInterface, QueryRunner, Table } from 'typeorm'; -import { logMigrationEnd, logMigrationStart } from '@db/utils/migrationHelpers'; +import { getTablePrefix, logMigrationEnd, logMigrationStart } from '@db/utils/migrationHelpers'; import config from '@/config'; export class CreateExecutionMetadataTable1674133106777 implements MigrationInterface { @@ -7,14 +7,14 @@ export class CreateExecutionMetadataTable1674133106777 implements MigrationInter public async up(queryRunner: QueryRunner): Promise { logMigrationStart(this.name); - const tablePrefix = config.getEnv('database.tablePrefix'); + const tablePrefix = getTablePrefix(); await queryRunner.query( `CREATE TABLE "${tablePrefix}execution_metadata" ( - id INTEGER PRIMARY KEY AUTOINCREMENT, + id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, executionId INTEGER NOT NULL, - "key" TEXT, - value TEXT, + "key" TEXT NOT NULL, + value TEXT NOT NULL, CONSTRAINT ${tablePrefix}execution_metadata_entity_FK FOREIGN KEY (executionId) REFERENCES ${tablePrefix}execution_entity(id) ON DELETE CASCADE )`, ); @@ -23,7 +23,7 @@ export class CreateExecutionMetadataTable1674133106777 implements MigrationInter } public async down(queryRunner: QueryRunner): Promise { - const tablePrefix = config.getEnv('database.tablePrefix'); + const tablePrefix = getTablePrefix(); await queryRunner.query(`DROP TABLE "${tablePrefix}execution_metadata"`); }