nocobase/examples/database/collections/tree/adjacency-list.ts

55 lines
1.1 KiB
TypeScript
Raw Normal View History

/*
#
yarn run:example database/collections/tree/adjacency-list
*/
import { Database } from '@nocobase/database';
import { uid } from '@nocobase/utils';
const db = new Database({
logging: process.env.DB_LOGGING === 'on' ? console.log : false,
dialect: process.env.DB_DIALECT as any,
storage: process.env.DB_STORAGE,
username: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_DATABASE,
host: process.env.DB_HOST,
port: process.env.DB_PORT as any,
timezone: process.env.DB_TIMEZONE,
tablePrefix: `t_${uid()}_`,
});
db.collection({
name: 'categories',
tree: 'adjacency-list',
fields: [
{
type: 'string',
name: 'name',
},
{
type: 'string',
name: 'description',
},
{
type: 'belongsTo',
name: 'parent',
target: 'categories',
foreignKey: 'parentId',
},
{
type: 'hasMany',
name: 'children',
target: 'categories',
foreignKey: 'parentId',
},
],
});
(async () => {
await db.sync();
await db.close();
})();
export default db;