运行 一次 DML/Update 个使用 Prisma 的脚本
Running one time DML/Update scripts using Prisma
Prisma 是否支持运行自动更新一次性 DML 语句,例如 UPDATE?
例如,假设我们希望 table 中的所有电子邮件均为小写。我们对 API 进行了更改,以便所有未来的 accounts/emails 都是小写的,但是我们希望将现有的电子邮件也更新为小写。
运行 npx prisma generate
和 npx prisma migrate
执行 DDL 以保持架构同步。但是,我没有看到保存数据库“补丁”文件的地方。这些文件通常 运行 一次,以便更新数据库中的现有记录。
Prisma 不自动支持 运行ning one-time DML 语句。
如果您想 运行 在特定的时间间隔执行某些功能,则需要使用诸如 cron 之类的东西。
并且有一次你可以只调用一次该函数。
至于您的特定用例,您可以使用以下函数来实现它。
async function main() {
const result = await prisma.$executeRaw`UPDATE "User" SET email=lower(email)`;
console.log(result);
}
您可以从此Guide
了解更多关于获取原始数据库访问的信息
Prisma 是否支持运行自动更新一次性 DML 语句,例如 UPDATE?
例如,假设我们希望 table 中的所有电子邮件均为小写。我们对 API 进行了更改,以便所有未来的 accounts/emails 都是小写的,但是我们希望将现有的电子邮件也更新为小写。
运行 npx prisma generate
和 npx prisma migrate
执行 DDL 以保持架构同步。但是,我没有看到保存数据库“补丁”文件的地方。这些文件通常 运行 一次,以便更新数据库中的现有记录。
Prisma 不自动支持 运行ning one-time DML 语句。
如果您想 运行 在特定的时间间隔执行某些功能,则需要使用诸如 cron 之类的东西。
并且有一次你可以只调用一次该函数。
至于您的特定用例,您可以使用以下函数来实现它。
async function main() {
const result = await prisma.$executeRaw`UPDATE "User" SET email=lower(email)`;
console.log(result);
}
您可以从此Guide
了解更多关于获取原始数据库访问的信息