import { PrismaClient } from '@prisma/client'; const prisma = new PrismaClient(); enum PermissionType { Menu, API, } async function main() { await prisma.sysUser.upsert({ where: { account: 'admin' }, update: {}, create: { name: '管理员', account: 'admin', password: '$2a$10$rWb52cHK1hrWuQQg3LiOJ.crDfIqjoOIoglGM96a.Ao1DL/dQwKCu', passwordSalt: '$2a$10$rWb52cHK1hrWuQQg3LiOJ.', status: 1, }, }); const menus = [ { name: '用户管理', path: 'user', type: PermissionType.Menu }, { name: '角色管理', path: 'role', type: PermissionType.Menu }, { name: '菜单管理', path: 'menu', type: PermissionType.Menu }, { name: '系统配置', path: 'config', type: PermissionType.Menu }, ]; for (const menu of menus) { // 创建菜单 await prisma.$transaction(async (_prisma) => { const { id: resourceId } = await _prisma.sysResource.create({ data: menu, }); // 创建菜单权限 const { id: permissionId } = await _prisma.sysPermission.create({ data: {}, }); // 关联权限和菜单 await _prisma.sysResourcePermission.create({ data: { resourceId, permissionId }, }); }); } } main() .then(async () => { console.log('seed done!'); await prisma.$disconnect(); }) .catch(async (e) => { console.error(e); await prisma.$disconnect(); process.exit(1); });