diff --git a/packages/core/server/src/migrations/20230910193824-package-name-unique.ts b/packages/core/server/src/migrations/20230912193824-package-name-unique.ts similarity index 51% rename from packages/core/server/src/migrations/20230910193824-package-name-unique.ts rename to packages/core/server/src/migrations/20230912193824-package-name-unique.ts index 42013601b..e39182f9c 100644 --- a/packages/core/server/src/migrations/20230910193824-package-name-unique.ts +++ b/packages/core/server/src/migrations/20230912193824-package-name-unique.ts @@ -1,5 +1,6 @@ import { DataTypes } from '@nocobase/database'; import { Migration } from '../migration'; +import { PluginManager } from '../plugin-manager'; export default class extends Migration { async up() { @@ -12,12 +13,30 @@ export default class extends Migration { if (await field.existsInDb()) { return; } - await this.db.sequelize.getQueryInterface().addColumn(tableNameWithSchema, 'packageName', { + await this.db.sequelize.getQueryInterface().addColumn(tableNameWithSchema, field.columnName(), { type: DataTypes.STRING, }); await this.db.sequelize.getQueryInterface().addConstraint(tableNameWithSchema, { type: 'unique', - fields: ['packageName'], + fields: [field.columnName()], }); + const repository = this.db.getRepository('applicationPlugins'); + const plugins = await repository.find(); + for (const plugin of plugins) { + const { name } = plugin; + if (plugin.packageName) { + continue; + } + const packageName = PluginManager.getPackageName(name); + await repository.update({ + filter: { + name, + }, + values: { + packageName, + }, + }); + console.log(name, packageName); + } } }