fix: add migration

This commit is contained in:
chenos 2023-05-09 15:45:36 +08:00
parent 6dafc85242
commit fdb0328838
2 changed files with 40 additions and 1 deletions

View File

@ -0,0 +1,39 @@
import { Migration } from '@nocobase/server';
export default class extends Migration {
async up() {
const result = await this.app.version.satisfies('<0.9.2-alpha.5');
if (!result) {
return;
}
const r = this.db.getRepository('uiSchemas');
const items = await r.find({
filter: {
'schema.x-designer': 'AssociationSelect.Designer',
},
});
await this.db.sequelize.transaction(async (transaction) => {
for (const item of items) {
const schema = item.schema;
if (!schema['x-collection-field']) {
continue;
}
const field = this.db.getFieldByPath(schema['x-collection-field']);
if (!field) {
continue;
}
if (['hasOne', 'belongsTo'].includes(field.type)) {
schema['type'] = 'object';
} else if (['hasMany', 'belongsToMany'].includes(field.type)) {
schema['type'] = 'array';
} else {
continue;
}
schema['x-designer'] = 'FormItem.Designer';
schema['x-component'] = 'CollectionField';
item.set('schema', schema);
await item.save({ transaction });
}
});
}
}

View File

@ -90,7 +90,7 @@ export class UiSchemaStoragePlugin extends Plugin {
async load() {
this.db.addMigrations({
namespace: 'collection-manager',
namespace: 'ui-schema-storage',
directory: path.resolve(__dirname, './migrations'),
context: {
plugin: this,