From ac252516f81e92c14e08f95a29c886286424ea1d Mon Sep 17 00:00:00 2001 From: Ilango Date: Fri, 3 Oct 2025 15:27:16 +0530 Subject: [PATCH] fix: migration errors for text to speech and chatflow name index (#5287) * fix: add another migration to fix missing textToSpeech column * fix: chatflow name index error * fix: review --- ...1759419231100-AddTextToSpeechToChatFlow.ts | 12 ++++++++++ ... => 1759424809984-AddChatFlowNameIndex.ts} | 6 ++--- .../src/database/migrations/mariadb/index.ts | 6 +++-- ...1759419216034-AddTextToSpeechToChatFlow.ts | 12 ++++++++++ ... => 1759424828558-AddChatFlowNameIndex.ts} | 6 ++--- .../src/database/migrations/mysql/index.ts | 6 +++-- .../1755748356008-AddChatFlowNameIndex.ts | 13 ----------- ...1759419194331-AddTextToSpeechToChatFlow.ts | 11 ++++++++++ .../1759424903973-AddChatFlowNameIndex.ts | 13 +++++++++++ .../src/database/migrations/postgres/index.ts | 6 +++-- .../1755748356008-AddChatFlowNameIndex.ts | 13 ----------- ...1759419136055-AddTextToSpeechToChatFlow.ts | 22 +++++++++++++++++++ .../1759424923093-AddChatFlowNameIndex.ts | 13 +++++++++++ .../src/database/migrations/sqlite/index.ts | 6 +++-- 14 files changed, 105 insertions(+), 40 deletions(-) create mode 100644 packages/server/src/database/migrations/mariadb/1759419231100-AddTextToSpeechToChatFlow.ts rename packages/server/src/database/migrations/mariadb/{1755748356008-AddChatFlowNameIndex.ts => 1759424809984-AddChatFlowNameIndex.ts} (70%) create mode 100644 packages/server/src/database/migrations/mysql/1759419216034-AddTextToSpeechToChatFlow.ts rename packages/server/src/database/migrations/mysql/{1755748356008-AddChatFlowNameIndex.ts => 1759424828558-AddChatFlowNameIndex.ts} (70%) delete mode 100644 packages/server/src/database/migrations/postgres/1755748356008-AddChatFlowNameIndex.ts create mode 100644 packages/server/src/database/migrations/postgres/1759419194331-AddTextToSpeechToChatFlow.ts create mode 100644 packages/server/src/database/migrations/postgres/1759424903973-AddChatFlowNameIndex.ts delete mode 100644 packages/server/src/database/migrations/sqlite/1755748356008-AddChatFlowNameIndex.ts create mode 100644 packages/server/src/database/migrations/sqlite/1759419136055-AddTextToSpeechToChatFlow.ts create mode 100644 packages/server/src/database/migrations/sqlite/1759424923093-AddChatFlowNameIndex.ts diff --git a/packages/server/src/database/migrations/mariadb/1759419231100-AddTextToSpeechToChatFlow.ts b/packages/server/src/database/migrations/mariadb/1759419231100-AddTextToSpeechToChatFlow.ts new file mode 100644 index 000000000..d527ffb2a --- /dev/null +++ b/packages/server/src/database/migrations/mariadb/1759419231100-AddTextToSpeechToChatFlow.ts @@ -0,0 +1,12 @@ +import { MigrationInterface, QueryRunner } from 'typeorm' + +export class AddTextToSpeechToChatFlow1759419231100 implements MigrationInterface { + public async up(queryRunner: QueryRunner): Promise { + const columnExists = await queryRunner.hasColumn('chat_flow', 'textToSpeech') + if (!columnExists) await queryRunner.query(`ALTER TABLE \`chat_flow\` ADD COLUMN \`textToSpeech\` TEXT;`) + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`chat_flow\` DROP COLUMN \`textToSpeech\`;`) + } +} diff --git a/packages/server/src/database/migrations/mariadb/1755748356008-AddChatFlowNameIndex.ts b/packages/server/src/database/migrations/mariadb/1759424809984-AddChatFlowNameIndex.ts similarity index 70% rename from packages/server/src/database/migrations/mariadb/1755748356008-AddChatFlowNameIndex.ts rename to packages/server/src/database/migrations/mariadb/1759424809984-AddChatFlowNameIndex.ts index 1fe79f449..89e440e8f 100644 --- a/packages/server/src/database/migrations/mariadb/1755748356008-AddChatFlowNameIndex.ts +++ b/packages/server/src/database/migrations/mariadb/1759424809984-AddChatFlowNameIndex.ts @@ -1,10 +1,10 @@ import { MigrationInterface, QueryRunner } from 'typeorm' -export class AddChatFlowNameIndex1755748356008 implements MigrationInterface { - name = 'AddChatFlowNameIndex1755748356008' +export class AddChatFlowNameIndex1759424809984 implements MigrationInterface { + name = 'AddChatFlowNameIndex1759424809984' public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`CREATE INDEX \`IDX_chatflow_name\` ON \`chat_flow\` (LEFT(\`name\`, 255))`) + await queryRunner.query(`CREATE INDEX \`IDX_chatflow_name\` ON \`chat_flow\` (\`name\`(191))`) } public async down(queryRunner: QueryRunner): Promise { diff --git a/packages/server/src/database/migrations/mariadb/index.ts b/packages/server/src/database/migrations/mariadb/index.ts index 9ec116501..d3a7bbe85 100644 --- a/packages/server/src/database/migrations/mariadb/index.ts +++ b/packages/server/src/database/migrations/mariadb/index.ts @@ -38,7 +38,8 @@ import { AddErrorToEvaluationRun1744964560174 } from './1744964560174-AddErrorTo import { ModifyExecutionDataColumnType1747902489801 } from './1747902489801-ModifyExecutionDataColumnType' import { AddTextToSpeechToChatFlow1754986457485 } from './1754986457485-AddTextToSpeechToChatFlow' import { ModifyChatflowType1755066758601 } from './1755066758601-ModifyChatflowType' -import { AddChatFlowNameIndex1755748356008 } from './1755748356008-AddChatFlowNameIndex' +import { AddTextToSpeechToChatFlow1759419231100 } from './1759419231100-AddTextToSpeechToChatFlow' +import { AddChatFlowNameIndex1759424809984 } from './1759424809984-AddChatFlowNameIndex' import { AddAuthTables1720230151482 } from '../../../enterprise/database/migrations/mariadb/1720230151482-AddAuthTables' import { AddWorkspace1725437498242 } from '../../../enterprise/database/migrations/mariadb/1725437498242-AddWorkspace' @@ -104,5 +105,6 @@ export const mariadbMigrations = [ ModifyExecutionDataColumnType1747902489801, AddTextToSpeechToChatFlow1754986457485, ModifyChatflowType1755066758601, - AddChatFlowNameIndex1755748356008 + AddTextToSpeechToChatFlow1759419231100, + AddChatFlowNameIndex1759424809984 ] diff --git a/packages/server/src/database/migrations/mysql/1759419216034-AddTextToSpeechToChatFlow.ts b/packages/server/src/database/migrations/mysql/1759419216034-AddTextToSpeechToChatFlow.ts new file mode 100644 index 000000000..35cf555f3 --- /dev/null +++ b/packages/server/src/database/migrations/mysql/1759419216034-AddTextToSpeechToChatFlow.ts @@ -0,0 +1,12 @@ +import { MigrationInterface, QueryRunner } from 'typeorm' + +export class AddTextToSpeechToChatFlow1759419216034 implements MigrationInterface { + public async up(queryRunner: QueryRunner): Promise { + const columnExists = await queryRunner.hasColumn('chat_flow', 'textToSpeech') + if (!columnExists) await queryRunner.query(`ALTER TABLE \`chat_flow\` ADD COLUMN \`textToSpeech\` TEXT;`) + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`chat_flow\` DROP COLUMN \`textToSpeech\`;`) + } +} diff --git a/packages/server/src/database/migrations/mysql/1755748356008-AddChatFlowNameIndex.ts b/packages/server/src/database/migrations/mysql/1759424828558-AddChatFlowNameIndex.ts similarity index 70% rename from packages/server/src/database/migrations/mysql/1755748356008-AddChatFlowNameIndex.ts rename to packages/server/src/database/migrations/mysql/1759424828558-AddChatFlowNameIndex.ts index 1fe79f449..a42782d4c 100644 --- a/packages/server/src/database/migrations/mysql/1755748356008-AddChatFlowNameIndex.ts +++ b/packages/server/src/database/migrations/mysql/1759424828558-AddChatFlowNameIndex.ts @@ -1,10 +1,10 @@ import { MigrationInterface, QueryRunner } from 'typeorm' -export class AddChatFlowNameIndex1755748356008 implements MigrationInterface { - name = 'AddChatFlowNameIndex1755748356008' +export class AddChatFlowNameIndex1759424828558 implements MigrationInterface { + name = 'AddChatFlowNameIndex1759424828558' public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`CREATE INDEX \`IDX_chatflow_name\` ON \`chat_flow\` (LEFT(\`name\`, 255))`) + await queryRunner.query(`CREATE INDEX \`IDX_chatflow_name\` ON \`chat_flow\` (\`name\`(191))`) } public async down(queryRunner: QueryRunner): Promise { diff --git a/packages/server/src/database/migrations/mysql/index.ts b/packages/server/src/database/migrations/mysql/index.ts index d3ff8f1c0..be6c97949 100644 --- a/packages/server/src/database/migrations/mysql/index.ts +++ b/packages/server/src/database/migrations/mysql/index.ts @@ -39,7 +39,8 @@ import { FixErrorsColumnInEvaluationRun1746437114935 } from './1746437114935-Fix import { ModifyExecutionDataColumnType1747902489801 } from './1747902489801-ModifyExecutionDataColumnType' import { AddTextToSpeechToChatFlow1754986468397 } from './1754986468397-AddTextToSpeechToChatFlow' import { ModifyChatflowType1755066758601 } from './1755066758601-ModifyChatflowType' -import { AddChatFlowNameIndex1755748356008 } from './1755748356008-AddChatFlowNameIndex' +import { AddTextToSpeechToChatFlow1759419216034 } from './1759419216034-AddTextToSpeechToChatFlow' +import { AddChatFlowNameIndex1759424828558 } from './1759424828558-AddChatFlowNameIndex' import { AddAuthTables1720230151482 } from '../../../enterprise/database/migrations/mysql/1720230151482-AddAuthTables' import { AddWorkspace1720230151484 } from '../../../enterprise/database/migrations/mysql/1720230151484-AddWorkspace' @@ -106,5 +107,6 @@ export const mysqlMigrations = [ ModifyExecutionDataColumnType1747902489801, AddTextToSpeechToChatFlow1754986468397, ModifyChatflowType1755066758601, - AddChatFlowNameIndex1755748356008 + AddTextToSpeechToChatFlow1759419216034, + AddChatFlowNameIndex1759424828558 ] diff --git a/packages/server/src/database/migrations/postgres/1755748356008-AddChatFlowNameIndex.ts b/packages/server/src/database/migrations/postgres/1755748356008-AddChatFlowNameIndex.ts deleted file mode 100644 index 4adfabf1e..000000000 --- a/packages/server/src/database/migrations/postgres/1755748356008-AddChatFlowNameIndex.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { MigrationInterface, QueryRunner } from 'typeorm' - -export class AddChatFlowNameIndex1755748356008 implements MigrationInterface { - name = 'AddChatFlowNameIndex1755748356008' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`CREATE INDEX "IDX_chatflow_name" ON "chat_flow" (substring("name" from 1 for 255))`) - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`DROP INDEX "IDX_chatflow_name"`) - } -} diff --git a/packages/server/src/database/migrations/postgres/1759419194331-AddTextToSpeechToChatFlow.ts b/packages/server/src/database/migrations/postgres/1759419194331-AddTextToSpeechToChatFlow.ts new file mode 100644 index 000000000..510a96b7c --- /dev/null +++ b/packages/server/src/database/migrations/postgres/1759419194331-AddTextToSpeechToChatFlow.ts @@ -0,0 +1,11 @@ +import { MigrationInterface, QueryRunner } from 'typeorm' + +export class AddTextToSpeechToChatFlow1759419194331 implements MigrationInterface { + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "chat_flow" ADD COLUMN IF NOT EXISTS "textToSpeech" TEXT;`) + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "chat_flow" DROP COLUMN "textToSpeech";`) + } +} diff --git a/packages/server/src/database/migrations/postgres/1759424903973-AddChatFlowNameIndex.ts b/packages/server/src/database/migrations/postgres/1759424903973-AddChatFlowNameIndex.ts new file mode 100644 index 000000000..c3da8c4e5 --- /dev/null +++ b/packages/server/src/database/migrations/postgres/1759424903973-AddChatFlowNameIndex.ts @@ -0,0 +1,13 @@ +import { MigrationInterface, QueryRunner } from 'typeorm' + +export class AddChatFlowNameIndex1759424903973 implements MigrationInterface { + name = 'AddChatFlowNameIndex1759424903973' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE INDEX IF NOT EXISTS "IDX_chatflow_name" ON "chat_flow" (substring("name" from 1 for 255))`) + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP INDEX IF EXISTS "IDX_chatflow_name"`) + } +} diff --git a/packages/server/src/database/migrations/postgres/index.ts b/packages/server/src/database/migrations/postgres/index.ts index 59b30583a..3dbca6147 100644 --- a/packages/server/src/database/migrations/postgres/index.ts +++ b/packages/server/src/database/migrations/postgres/index.ts @@ -38,7 +38,8 @@ import { AddErrorToEvaluationRun1744964560174 } from './1744964560174-AddErrorTo import { ModifyExecutionSessionIdFieldType1748450230238 } from './1748450230238-ModifyExecutionSessionIdFieldType' import { AddTextToSpeechToChatFlow1754986480347 } from './1754986480347-AddTextToSpeechToChatFlow' import { ModifyChatflowType1755066758601 } from './1755066758601-ModifyChatflowType' -import { AddChatFlowNameIndex1755748356008 } from './1755748356008-AddChatFlowNameIndex' +import { AddTextToSpeechToChatFlow1759419194331 } from './1759419194331-AddTextToSpeechToChatFlow' +import { AddChatFlowNameIndex1759424903973 } from './1759424903973-AddChatFlowNameIndex' import { AddAuthTables1720230151482 } from '../../../enterprise/database/migrations/postgres/1720230151482-AddAuthTables' import { AddWorkspace1720230151484 } from '../../../enterprise/database/migrations/postgres/1720230151484-AddWorkspace' @@ -104,5 +105,6 @@ export const postgresMigrations = [ ModifyExecutionSessionIdFieldType1748450230238, AddTextToSpeechToChatFlow1754986480347, ModifyChatflowType1755066758601, - AddChatFlowNameIndex1755748356008 + AddTextToSpeechToChatFlow1759419194331, + AddChatFlowNameIndex1759424903973 ] diff --git a/packages/server/src/database/migrations/sqlite/1755748356008-AddChatFlowNameIndex.ts b/packages/server/src/database/migrations/sqlite/1755748356008-AddChatFlowNameIndex.ts deleted file mode 100644 index 9f6023caa..000000000 --- a/packages/server/src/database/migrations/sqlite/1755748356008-AddChatFlowNameIndex.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { MigrationInterface, QueryRunner } from 'typeorm' - -export class AddChatFlowNameIndex1755748356008 implements MigrationInterface { - name = 'AddChatFlowNameIndex1755748356008' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`CREATE INDEX "IDX_chatflow_name" ON "chat_flow" (substr("name", 1, 255))`) - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`DROP INDEX "IDX_chatflow_name"`) - } -} diff --git a/packages/server/src/database/migrations/sqlite/1759419136055-AddTextToSpeechToChatFlow.ts b/packages/server/src/database/migrations/sqlite/1759419136055-AddTextToSpeechToChatFlow.ts new file mode 100644 index 000000000..382253819 --- /dev/null +++ b/packages/server/src/database/migrations/sqlite/1759419136055-AddTextToSpeechToChatFlow.ts @@ -0,0 +1,22 @@ +import { MigrationInterface, QueryRunner } from 'typeorm' + +export class AddTextToSpeechToChatFlow1759419136055 implements MigrationInterface { + public async up(queryRunner: QueryRunner): Promise { + const tableInfo = await queryRunner.query(`PRAGMA table_info("chat_flow");`) + const columnExists = tableInfo.some((column: any) => column.name === 'textToSpeech') + if (!columnExists) { + await queryRunner.query(`ALTER TABLE "chat_flow" ADD COLUMN "textToSpeech" TEXT;`) + } + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TABLE "chat_flow_temp" AS SELECT * FROM "chat_flow" WHERE 1=0;`) + await queryRunner.query(` + INSERT INTO "chat_flow_temp" + SELECT id, name, flowData, deployed, isPublic, apikeyid, chatbotConfig, apiConfig, analytic, speechToText, followUpPrompts, category, type, createdDate, updatedDate, workspaceId + FROM "chat_flow"; + `) + await queryRunner.query(`DROP TABLE "chat_flow";`) + await queryRunner.query(`ALTER TABLE "chat_flow_temp" RENAME TO "chat_flow";`) + } +} diff --git a/packages/server/src/database/migrations/sqlite/1759424923093-AddChatFlowNameIndex.ts b/packages/server/src/database/migrations/sqlite/1759424923093-AddChatFlowNameIndex.ts new file mode 100644 index 000000000..436707ca0 --- /dev/null +++ b/packages/server/src/database/migrations/sqlite/1759424923093-AddChatFlowNameIndex.ts @@ -0,0 +1,13 @@ +import { MigrationInterface, QueryRunner } from 'typeorm' + +export class AddChatFlowNameIndex1759424923093 implements MigrationInterface { + name = 'AddChatFlowNameIndex1759424923093' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE INDEX IF NOT EXISTS "IDX_chatflow_name" ON "chat_flow" (substr(name, 1, 255))`) + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP INDEX IF EXISTS "IDX_chatflow_name"`) + } +} diff --git a/packages/server/src/database/migrations/sqlite/index.ts b/packages/server/src/database/migrations/sqlite/index.ts index 6f0e706c3..cbed0760c 100644 --- a/packages/server/src/database/migrations/sqlite/index.ts +++ b/packages/server/src/database/migrations/sqlite/index.ts @@ -36,7 +36,8 @@ import { FixOpenSourceAssistantTable1743758056188 } from './1743758056188-FixOpe import { AddErrorToEvaluationRun1744964560174 } from './1744964560174-AddErrorToEvaluationRun' import { AddTextToSpeechToChatFlow1754986486669 } from './1754986486669-AddTextToSpeechToChatFlow' import { ModifyChatflowType1755066758601 } from './1755066758601-ModifyChatflowType' -import { AddChatFlowNameIndex1755748356008 } from './1755748356008-AddChatFlowNameIndex' +import { AddTextToSpeechToChatFlow1759419136055 } from './1759419136055-AddTextToSpeechToChatFlow' +import { AddChatFlowNameIndex1759424923093 } from './1759424923093-AddChatFlowNameIndex' import { AddAuthTables1720230151482 } from '../../../enterprise/database/migrations/sqlite/1720230151482-AddAuthTables' import { AddWorkspace1720230151484 } from '../../../enterprise/database/migrations/sqlite/1720230151484-AddWorkspace' @@ -100,5 +101,6 @@ export const sqliteMigrations = [ ExecutionLinkWorkspaceId1746862866554, AddTextToSpeechToChatFlow1754986486669, ModifyChatflowType1755066758601, - AddChatFlowNameIndex1755748356008 + AddTextToSpeechToChatFlow1759419136055, + AddChatFlowNameIndex1759424923093 ]