| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- import { MigrationInterface, QueryRunner } from 'typeorm';
- export class AddKnowledgeBaseEnhancements1737800000000 implements MigrationInterface {
- name = 'AddKnowledgeBaseEnhancements1737800000000';
- public async up(queryRunner: QueryRunner): Promise<void> {
-
- await queryRunner.query(`
- CREATE TABLE "knowledge_groups" (
- "id" varchar PRIMARY KEY NOT NULL,
- "name" varchar NOT NULL,
- "description" varchar,
- "color" varchar NOT NULL DEFAULT '#3B82F6',
- "user_id" varchar NOT NULL,
- "created_at" datetime NOT NULL DEFAULT (datetime('now')),
- "updated_at" datetime NOT NULL DEFAULT (datetime('now'))
- )
- `);
-
- await queryRunner.query(`
- CREATE TABLE "knowledge_base_groups" (
- "knowledge_base_id" varchar NOT NULL,
- "group_id" varchar NOT NULL,
- "created_at" datetime NOT NULL DEFAULT (datetime('now')),
- PRIMARY KEY ("knowledge_base_id", "group_id"),
- FOREIGN KEY ("knowledge_base_id") REFERENCES "knowledge_base" ("id") ON DELETE CASCADE,
- FOREIGN KEY ("group_id") REFERENCES "knowledge_groups" ("id") ON DELETE CASCADE
- )
- `);
-
- await queryRunner.query(`
- CREATE TABLE "search_history" (
- "id" varchar PRIMARY KEY NOT NULL,
- "user_id" varchar NOT NULL,
- "title" varchar NOT NULL,
- "selected_groups" text,
- "created_at" datetime NOT NULL DEFAULT (datetime('now')),
- "updated_at" datetime NOT NULL DEFAULT (datetime('now'))
- )
- `);
-
- await queryRunner.query(`
- CREATE TABLE "chat_messages" (
- "id" varchar PRIMARY KEY NOT NULL,
- "search_history_id" varchar NOT NULL,
- "role" varchar NOT NULL CHECK ("role" IN ('user', 'assistant')),
- "content" text NOT NULL,
- "sources" text,
- "created_at" datetime NOT NULL DEFAULT (datetime('now')),
- FOREIGN KEY ("search_history_id") REFERENCES "search_history" ("id") ON DELETE CASCADE
- )
- `);
-
- await queryRunner.query(`
- ALTER TABLE "knowledge_base" ADD COLUMN "pdf_path" varchar
- `);
-
- await queryRunner.query(`CREATE INDEX "IDX_knowledge_groups_user_id" ON "knowledge_groups" ("user_id")`);
- await queryRunner.query(`CREATE INDEX "IDX_search_history_user_id" ON "search_history" ("user_id")`);
- await queryRunner.query(`CREATE INDEX "IDX_chat_messages_search_history_id" ON "chat_messages" ("search_history_id")`);
- }
- public async down(queryRunner: QueryRunner): Promise<void> {
-
- await queryRunner.query(`DROP INDEX "IDX_chat_messages_search_history_id"`);
- await queryRunner.query(`DROP INDEX "IDX_search_history_user_id"`);
- await queryRunner.query(`DROP INDEX "IDX_knowledge_groups_user_id"`);
-
- await queryRunner.query(`ALTER TABLE "knowledge_base" DROP COLUMN "pdf_path"`);
-
- await queryRunner.query(`DROP TABLE "chat_messages"`);
- await queryRunner.query(`DROP TABLE "search_history"`);
- await queryRunner.query(`DROP TABLE "knowledge_base_groups"`);
- await queryRunner.query(`DROP TABLE "knowledge_groups"`);
- }
- }
|