From dbe3af26a1fc544ee4f0475046a06b08d52edd2c Mon Sep 17 00:00:00 2001 From: ChengLei Shao Date: Thu, 14 Sep 2023 20:46:49 +0800 Subject: [PATCH] fix(share-collection): sync plugins when install sub app (#2650) --- .../src/server/plugin.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/server/plugin.ts b/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/server/plugin.ts index 295f58a5c9..655dea1f1c 100644 --- a/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/server/plugin.ts +++ b/packages/plugins/@nocobase/plugin-multi-app-share-collection/src/server/plugin.ts @@ -95,9 +95,17 @@ class SubAppPlugin extends Plugin { // delete old collection await subApp.db.sequelize.query(`TRUNCATE ${subAppPluginsCollection.quotedTableName()}`); + const columnsInfo = await subApp.db.sequelize + .getQueryInterface() + .describeTable(subAppPluginsCollection.getTableNameWithSchema()); + + const columns = Object.keys(columnsInfo).sort(); + + const columnsInSql = columns.map((column) => `"${column}"`).join(', '); + await subApp.db.sequelize.query(` - INSERT INTO ${subAppPluginsCollection.quotedTableName()} - SELECT * + INSERT INTO ${subAppPluginsCollection.quotedTableName()} (${columnsInSql}) + SELECT ${columnsInSql} FROM ${mainAppPluginsCollection.quotedTableName()} WHERE "name" not in ('multi-app-manager', 'multi-app-share-collection'); `);