tachybase_todo/packages/api/src/migrations/init.ts
2021-08-04 12:38:08 +08:00

71 lines
1.5 KiB
TypeScript

// @ts-ignore
global.sync = {
force: true,
alter: {
drop: true,
},
};
import Database from '@nocobase/database';
import api from '../app';
import * as uiSchema from './ui-schema';
(async () => {
await api.loadPlugins();
const database: Database = api.database;
await database.sync({
// tables: ['collections', 'fields', 'actions', 'views', 'tabs'],
});
const config = require('@nocobase/plugin-users/src/collections/users').default;
const Collection = database.getModel('collections');
const collection = await Collection.create(config);
await collection.updateAssociations(config);
await collection.migrate();
const Route = database.getModel('routes');
const data = [
{
type: 'redirect',
from: '/',
to: '/admin',
exact: true,
},
{
type: 'route',
path: '/admin/:name(.+)?',
component: 'AdminLayout',
title: `后台`,
uiSchema: uiSchema.menu,
},
{
type: 'route',
component: 'AuthLayout',
children: [
{
type: 'route',
path: '/login',
component: 'RouteSchemaRenderer',
title: `登录`,
uiSchema: uiSchema.login,
},
{
type: 'route',
path: '/register',
component: 'RouteSchemaRenderer',
title: `注册`,
uiSchema: uiSchema.register,
},
],
},
];
for (const item of data) {
const route = await Route.create(item);
await route.updateAssociations(item);
}
await database.close();
})();