import { PrismaClient } from '@prisma/client'; const prisma = new PrismaClient(); enum PermissionType { Menu, } 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: '用户管理', url: 'user' }, { name: '角色管理', url: 'role' }, { name: '菜单管理', url: 'menu' }, { name: '系统配置', url: 'config' }, ]; for (const menu of menus) { // 创建菜单 await prisma.$transaction(async (_prisma) => { const { id: menuId } = await _prisma.sysMenu.create({ data: menu }); // 创建菜单权限 const { id: permissionId } = await _prisma.sysPermission.create({ data: { type: PermissionType.Menu }, }); // 关联权限和菜单 await _prisma.sysMenuPermission.create({ data: { menuId, permissionId }, }); }); } } main() .then(async () => { console.log('seed done!'); await prisma.$disconnect(); }) .catch(async (e) => { console.error(e); await prisma.$disconnect(); process.exit(1); });