heroku - 如何在 Heroku 上使用 Prisma 2 CLI

标签 heroku nestjs prisma heroku-cli

我已经在使用 Prisma 2 的 Heroku 上部署了 NestJs 应用程序,但是当我运行命令时 在heroku bash上的npx prisma --version我得到Prisma CLI版本:prisma/1.34.10 (linux-x64)node-v14.15.0但我已经安装了prisma 2.11。 0,我想使用 Prisma 2 cli 内省(introspection)我现有的数据库,并运行 prismagenerate。

最佳答案

我设法内省(introspection)现有数据库并通过在脚本部分的 package.json 上添加 heroku-postbuild 命令来运行 prisma generated,如下所示:

{
   "scripts": {
      "heroku-postbuild": "prisma introspect && prisma generate"
   }
}

现在,当我推送到heroku时,heroku-postbuild命令将被执行。

注意:默认情况下,Heroku 在安装了 dependency 和 devDependencies 下的 package.json 中列出的所有依赖项后,将在部署应用程序之前删除(修剪 devDependencies)在 devDependencies 下声明的包。

heroku-postbuild 在 Heroku 安装依赖项之后、但在 Heroku 修剪和缓存依赖项之前运行。因此,为什么指定的 prisma introspect && prisma generated 将使用 package.json 上指定的 prisma cli。

注意:要跳过 devDependency 的修剪步骤,请将 NPM_CONFIG_PRODUCTION 设置为 false,如下所示,以便我们可以在运行时访问 devDependency 下声明的包:

heroku 配置:设置 NPM_CONFIG_PRODUCTION=false

现在将 NPM_CONFIG_PRODUCTION 设置为 false 后,如果我们运行 npx prisma --version 我们将从 package.json 获取已安装的版本

了解更多信息请访问:https://devcenter.heroku.com/articles/nodejs-support#build-behavior

关于heroku - 如何在 Heroku 上使用 Prisma 2 CLI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65165511/

相关文章:

postgresql - 数据库时区不使用 TZ

ruby-on-rails - 间歇性 PostgreSQL 错误 : missing FROM-clause

javascript - 使用 node 和 multer 将图像上传到 heroku 不起作用

typescript - NestJS- Mongoose : cannot access fullDocument on ChangeEvent<any>

graphql - 如何删除有关系的项目?

node.js - 在 Heroku 上使用 Angular2 路由器

aws-lambda - NestJS + Serverless/Lambda 上的任务调度/CRON 作业

typescript - 将 TypeORM 实体模型类与 NestJS-GraphQL 模式类型结合使用好吗?

schema - 使用 Prisma,我们如何为类型添加注释?

reactjs - WebSocket 连接到 'ws:<URL>/_next/webpack-hmr' 失败 : WebSocket is closed before the connection is established