如何在 Heroku 上使用 Prisma 2 CLI

How to use Prisma 2 CLI on Heroku

我已经在使用 Prisma 2 的 Heroku 上部署了 NestJs 应用程序,但是当我 运行 命令 npx prisma --version 在 heroku bash 我得到 Prisma CLI version: prisma/1.34.10 (linux-x64) node-v14.15.0 但我已经安装了 prisma 2.11.0,我想使用 Prisma 2 cli 来检查我现有的数据库,并且 运行 prisma 生成。

我通过在脚本部分的 package.json 上添加 heroku-postbuild 命令成功地反省了我现有的数据库和 运行 prisma 生成,如下所示:

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

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

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

heroku-postbuild 运行s 在 Heroku 安装依赖项之后,但在 Heroku p运行es 和缓存依赖项之前。因此,为什么指定的 prisma introspect && prisma generate 将使用 package.json.

上指定的 prisma cli

注意: 要跳过 devDependencies 的 p运行ing 步骤,将 NPM_CONFIG_PRODUCTION 设置为 false,如下所示,这样我们就可以访问下面声明的包运行时间的 devDependencies:

heroku config:set NPM_CONFIG_PRODUCTION=false

现在将 NPM_CONFIG_PRODUCTION 设置为 false 后,如果我们 运行 npx prisma --version 我们将从 package.json

获取已安装的版本

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