Files
nestjs-admin/server/prisma/seed.ts
2024-11-28 10:50:49 +08:00

53 lines
1.3 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
});