如何用Prisma为数据库添加初始化数据

背景

到目前为止,数据库还是为空的,因此,我们需要创建一个种子脚本,填充一些初始数据进入数据库,有些初始数据是程序必不可少的,比如货币语言信息等,有时候开发需要重置数据库,因此为数据库播种也很有必要。

首先,创建一个名为prisma/seed.ts。 然后粘贴以下模板代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import { PrismaClient } from "@prisma/client";
// 初始化 Prisma Client
const prisma = new PrismaClient();

async function main() {
//在此编写 Prisma Client 查询
}

main()
.catch((e) => {
console.error(e);
process.exit(1);
})
.finally(async () => {
// 关闭 Prisma Client
await prisma.$disconnect();
});

为了能够让 nodejs 运行 typescript,我们需要安装ts-node

1
npm i -D ts-node 

然后在 tsconfig.json 中指定输出格式为 commonjs

1
2
3
4
5
6
7
{
"ts-node": {
"compilerOptions": {
"module": "commonjs"
}
}
}

接下来,我们在 main 函数中创建一个用户:

1
2
3
4
5
6
7
8
9
10
11
async function main() {
const user = await prisma.user.create({
data: {
name: "小马",
avatar:
"https://p3-passport.byteimg.com/img/user-avatar/585e1491713363bc8f67d06c485e8260~100x100.awebp",
},
});
console.log(user)
}

执行命令

1
npx ts-node ./prisma/seed.ts

请我喝杯咖啡吧~

支付宝
微信