add chatId column
This commit is contained in:
parent
7b54f17a58
commit
d6cf5fed42
|
|
@ -30,6 +30,7 @@ export interface IChatMessage {
|
|||
chatflowid: string
|
||||
sourceDocuments?: string
|
||||
chatType: string
|
||||
chatId: string
|
||||
memoryType?: string
|
||||
sessionId?: string
|
||||
createdDate: Date
|
||||
|
|
@ -153,6 +154,7 @@ export interface IncomingInput {
|
|||
history: IMessage[]
|
||||
overrideConfig?: ICommonObject
|
||||
socketIOClientId?: string
|
||||
chatId?: string
|
||||
}
|
||||
|
||||
export interface IActiveChatflows {
|
||||
|
|
|
|||
|
|
@ -23,6 +23,9 @@ export class ChatMessage implements IChatMessage {
|
|||
@Column()
|
||||
chatType: string
|
||||
|
||||
@Column()
|
||||
chatId: string
|
||||
|
||||
@Column({ nullable: true })
|
||||
memoryType?: string
|
||||
|
||||
|
|
|
|||
|
|
@ -5,15 +5,37 @@ export class AddChatHistory1694658767766 implements MigrationInterface {
|
|||
const chatTypeColumnExists = await queryRunner.hasColumn('chat_message', 'chatType')
|
||||
if (!chatTypeColumnExists)
|
||||
await queryRunner.query(`ALTER TABLE \`chat_message\` ADD COLUMN \`chatType\` VARCHAR(255) NOT NULL DEFAULT 'INTERNAL';`)
|
||||
|
||||
const chatIdColumnExists = await queryRunner.hasColumn('chat_message', 'chatId')
|
||||
if (!chatIdColumnExists) await queryRunner.query(`ALTER TABLE \`chat_message\` ADD COLUMN \`chatId\` VARCHAR(255);`)
|
||||
const results: { id: string; chatflowid: string }[] = await queryRunner.query(`WITH RankedMessages AS (
|
||||
SELECT
|
||||
\`chatflowid\`,
|
||||
\`id\`,
|
||||
\`createdDate\`,
|
||||
ROW_NUMBER() OVER (PARTITION BY \`chatflowid\` ORDER BY \`createdDate\`) AS row_num
|
||||
FROM \`chat_message\`
|
||||
)
|
||||
SELECT \`chatflowid\`, \`id\`
|
||||
FROM RankedMessages
|
||||
WHERE row_num = 1;`)
|
||||
for (const chatMessage of results) {
|
||||
await queryRunner.query(
|
||||
`UPDATE \`chat_message\` SET \`chatId\` = '${chatMessage.id}' WHERE \`chatflowid\` = '${chatMessage.chatflowid}'`
|
||||
)
|
||||
}
|
||||
await queryRunner.query(`ALTER TABLE \`chat_message\` MODIFY \`chatId\` VARCHAR(255) NOT NULL;`)
|
||||
|
||||
const memoryTypeColumnExists = await queryRunner.hasColumn('chat_message', 'memoryType')
|
||||
if (!memoryTypeColumnExists) await queryRunner.query(`ALTER TABLE \`chat_message\` ADD COLUMN \`memoryType\` VARCHAR(255);`)
|
||||
|
||||
const sessionIdColumnExists = await queryRunner.hasColumn('chat_message', 'sessionId')
|
||||
if (!sessionIdColumnExists) await queryRunner.query(`ALTER TABLE \`chat_message\` ADD COLUMN \`sessionId\` VARCHAR(255);`)
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE \`chat_message\` DROP COLUMN \`chatType\`, DROP COLUMN \`memoryType\`, DROP COLUMN \`sessionId\`;`
|
||||
`ALTER TABLE \`chat_message\` DROP COLUMN \`chatType\`, DROP COLUMN \`chatId\`, DROP COLUMN \`memoryType\`, DROP COLUMN \`sessionId\`;`
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,11 +3,30 @@ import { MigrationInterface, QueryRunner } from 'typeorm'
|
|||
export class AddChatHistory1694658756136 implements MigrationInterface {
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "chat_message" ADD COLUMN IF NOT EXISTS "chatType" VARCHAR NOT NULL DEFAULT 'INTERNAL', ADD COLUMN IF NOT EXISTS "memoryType" VARCHAR, ADD COLUMN IF NOT EXISTS "sessionId" VARCHAR;`
|
||||
`ALTER TABLE "chat_message" ADD COLUMN IF NOT EXISTS "chatType" VARCHAR NOT NULL DEFAULT 'INTERNAL', ADD COLUMN IF NOT EXISTS "chatId" VARCHAR, ADD COLUMN IF NOT EXISTS "memoryType" VARCHAR, ADD COLUMN IF NOT EXISTS "sessionId" VARCHAR;`
|
||||
)
|
||||
const results: { id: string; chatflowid: string }[] = await queryRunner.query(`WITH RankedMessages AS (
|
||||
SELECT
|
||||
"chatflowid",
|
||||
"id",
|
||||
"createdDate",
|
||||
ROW_NUMBER() OVER (PARTITION BY "chatflowid" ORDER BY "createdDate") AS row_num
|
||||
FROM "chat_message"
|
||||
)
|
||||
SELECT "chatflowid", "id"
|
||||
FROM RankedMessages
|
||||
WHERE row_num = 1;`)
|
||||
for (const chatMessage of results) {
|
||||
await queryRunner.query(
|
||||
`UPDATE "chat_message" SET "chatId" = '${chatMessage.id}' WHERE "chatflowid" = '${chatMessage.chatflowid}'`
|
||||
)
|
||||
}
|
||||
await queryRunner.query(`ALTER TABLE "chat_message" ALTER COLUMN "chatId" SET NOT NULL;`)
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "chat_message" DROP COLUMN "chatType", DROP COLUMN "memoryType", DROP COLUMN "sessionId";`)
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "chat_message" DROP COLUMN "chatType", DROP COLUMN "chatId", DROP COLUMN "memoryType", DROP COLUMN "sessionId";`
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,13 +2,38 @@ import { MigrationInterface, QueryRunner } from 'typeorm'
|
|||
|
||||
export class AddChatHistory1694657778173 implements MigrationInterface {
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "chat_message" ADD COLUMN "chatType" VARCHAR NOT NULL DEFAULT 'INTERNAL';`)
|
||||
await queryRunner.query(`ALTER TABLE "chat_message" ADD COLUMN "memoryType" VARCHAR;`)
|
||||
await queryRunner.query(`ALTER TABLE "chat_message" ADD COLUMN "sessionId" VARCHAR;`)
|
||||
await queryRunner.query(`ALTER TABLE "chat_message" ADD COLUMN "chatId" VARCHAR;`)
|
||||
const results: { id: string; chatflowid: string }[] = await queryRunner.query(`WITH RankedMessages AS (
|
||||
SELECT
|
||||
"chatflowid",
|
||||
"id",
|
||||
"createdDate",
|
||||
ROW_NUMBER() OVER (PARTITION BY "chatflowid" ORDER BY "createdDate") AS row_num
|
||||
FROM "chat_message"
|
||||
)
|
||||
SELECT "chatflowid", "id"
|
||||
FROM RankedMessages
|
||||
WHERE row_num = 1;`)
|
||||
for (const chatMessage of results) {
|
||||
await queryRunner.query(
|
||||
`UPDATE "chat_message" SET "chatId" = '${chatMessage.id}' WHERE "chatflowid" = '${chatMessage.chatflowid}'`
|
||||
)
|
||||
}
|
||||
await queryRunner.query(
|
||||
`CREATE TABLE "temp_chat_message" ("id" varchar PRIMARY KEY NOT NULL, "role" varchar NOT NULL, "chatflowid" varchar NOT NULL, "content" text NOT NULL, "sourceDocuments" text, "createdDate" datetime NOT NULL DEFAULT (datetime('now')), "chatType" VARCHAR NOT NULL DEFAULT 'INTERNAL', "chatId" VARCHAR NOT NULL, "memoryType" VARCHAR, "sessionId" VARCHAR);`
|
||||
)
|
||||
await queryRunner.query(
|
||||
`INSERT INTO "temp_chat_message" ("id", "role", "chatflowid", "content", "sourceDocuments", "createdDate", "chatId") SELECT "id", "role", "chatflowid", "content", "sourceDocuments", "createdDate", "chatId" FROM "chat_message";`
|
||||
)
|
||||
await queryRunner.query(`DROP TABLE "chat_message";`)
|
||||
await queryRunner.query(`ALTER TABLE "temp_chat_message" RENAME TO "chat_message";`)
|
||||
await queryRunner.query(`CREATE INDEX "IDX_e574527322272fd838f4f0f3d3" ON "chat_message" ("chatflowid") ;`)
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DROP TABLE IF EXISTS "temp_chat_message";`)
|
||||
await queryRunner.query(`ALTER TABLE "chat_message" DROP COLUMN "chatType";`)
|
||||
await queryRunner.query(`ALTER TABLE "chat_message" DROP COLUMN "chatId";`)
|
||||
await queryRunner.query(`ALTER TABLE "chat_message" DROP COLUMN "memoryType";`)
|
||||
await queryRunner.query(`ALTER TABLE "chat_message" DROP COLUMN "sessionId";`)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue