diff --git a/package.json b/package.json index 5ef0ecdb..dae9d098 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,8 @@ "lint": "eslint \"**/*.{js,jsx,ts,tsx,json,md}\"", "lint-fix": "yarn lint --fix", "quick": "pretty-quick --staged", - "postinstall": "husky install" + "postinstall": "husky install", + "migration:create": "yarn typeorm migration:create" }, "lint-staged": { "*.{js,jsx,ts,tsx,json,md}": "eslint --fix" diff --git a/packages/server/src/DataSource.ts b/packages/server/src/DataSource.ts index a1d37996..11ddc8ee 100644 --- a/packages/server/src/DataSource.ts +++ b/packages/server/src/DataSource.ts @@ -3,7 +3,7 @@ import path from 'path' import { DataSource } from 'typeorm' import { getUserHome } from './utils' import { entities } from './database/entities' -import { InitSqlite1693809869231 } from './database/migrations/1693809869231-initSqlite' +import { sqliteMigrations } from './database/migrations/sqlite' let appDataSource: DataSource @@ -18,7 +18,7 @@ export const init = async (): Promise => { synchronize: false, migrationsRun: false, entities: Object.values(entities), - migrations: [InitSqlite1693809869231] + migrations: sqliteMigrations }) break case 'mysql': @@ -58,7 +58,7 @@ export const init = async (): Promise => { synchronize: false, migrationsRun: false, entities: Object.values(entities), - migrations: [InitSqlite1693809869231] + migrations: sqliteMigrations }) break } diff --git a/packages/server/src/database/migrations/1693809869231-initSqlite.ts b/packages/server/src/database/migrations/sqlite/1693835579790-Init.ts similarity index 85% rename from packages/server/src/database/migrations/1693809869231-initSqlite.ts rename to packages/server/src/database/migrations/sqlite/1693835579790-Init.ts index 78af741d..2ae72b63 100644 --- a/packages/server/src/database/migrations/1693809869231-initSqlite.ts +++ b/packages/server/src/database/migrations/sqlite/1693835579790-Init.ts @@ -1,27 +1,25 @@ import { MigrationInterface, QueryRunner } from 'typeorm' -export class InitSqlite1693809869231 implements MigrationInterface { +export class Init1693835579790 implements MigrationInterface { public async up(queryRunner: QueryRunner): Promise { - console.info('started migration query') await queryRunner.query( `CREATE TABLE "chat_flow" ("id" varchar PRIMARY KEY NOT NULL, "name" varchar NOT NULL, "flowData" text NOT NULL, "deployed" boolean, "isPublic" boolean, "apikeyid" varchar, "chatbotConfig" varchar, "createdDate" datetime NOT NULL DEFAULT (datetime('now')), "updatedDate" datetime NOT NULL DEFAULT (datetime('now')));` ) await queryRunner.query( `CREATE TABLE "chat_message" ("id" varchar PRIMARY KEY NOT NULL, "role" varchar NOT NULL, "chatflowid" varchar NOT NULL, "content" text NOT NULL, "sourceDocuments" varchar, "createdDate" datetime NOT NULL DEFAULT (datetime('now')));` ) - await queryRunner.query(`CREATE INDEX "IDX_e574527322272fd838f4f0f3d3" ON "chat_message" ("chatflowid") ;`) + await queryRunner.query(`CREATE INDEX "IDX_e574527322272fd838f4f0f3d3" ON "chat_message" ("chatflowid");`) await queryRunner.query( `CREATE TABLE "credential" ("id" varchar PRIMARY KEY NOT NULL, "name" varchar NOT NULL, "credentialName" varchar NOT NULL, "encryptedData" varchar NOT NULL, "createdDate" datetime NOT NULL DEFAULT (datetime('now')), "updatedDate" datetime NOT NULL DEFAULT (datetime('now')));` ) await queryRunner.query( `CREATE TABLE "tool" ("id" varchar PRIMARY KEY NOT NULL, "name" varchar NOT NULL, "description" text NOT NULL, "color" varchar NOT NULL, "iconSrc" varchar, "schema" varchar, "func" varchar, "createdDate" datetime NOT NULL DEFAULT (datetime('now')), "updatedDate" datetime NOT NULL DEFAULT (datetime('now')));` ) - console.info('Finish migration query') } public async down(queryRunner: QueryRunner): Promise { await queryRunner.query(`DROP TABLE "chat_flow"`) - await queryRunner.query(`DROP INDEX "IDX_chat_messagee574527322272fd838f4f0f3d3"`) + await queryRunner.query(`DROP INDEX "IDX_e574527322272fd838f4f0f3d3"`) await queryRunner.query(`DROP TABLE "chat_message"`) await queryRunner.query(`DROP TABLE "credential"`) await queryRunner.query(`DROP TABLE "tool"`) diff --git a/packages/server/src/database/migrations/sqlite/index.ts b/packages/server/src/database/migrations/sqlite/index.ts new file mode 100644 index 00000000..31fef34a --- /dev/null +++ b/packages/server/src/database/migrations/sqlite/index.ts @@ -0,0 +1,3 @@ +import { Init1693835579790 } from './1693835579790-Init' + +export const sqliteMigrations = [Init1693835579790] diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts index 1e8dc83c..81dbbcb4 100644 --- a/packages/server/src/index.ts +++ b/packages/server/src/index.ts @@ -71,10 +71,8 @@ export class App { .then(async () => { logger.info('📦 [server]: Data Source has been initialized!') - //Migrations - console.info(`start migration`) + // Run Migrations Scripts await this.AppDataSource.runMigrations({ transaction: 'each' }) - console.info(`finish migration`) // Initialize nodes pool this.nodesPool = new NodesPool()