【问题标题】:How to use Prisma 2 CLI on Heroku如何在 Heroku 上使用 Prisma 2 CLI
【发布时间】:2021-03-17 19:15:14
【问题描述】:

我已经在使用 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 generate。

【问题讨论】:

    标签: heroku nestjs prisma heroku-cli


    【解决方案1】:

    我设法通过在脚本部分的 package.json 中添加 heroku-postbuild 命令来检查我现有的数据库并运行 prisma generate,如下所示:

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

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

    注意:默认情况下,Heroku 在安装完依赖项和 devDependencies 下 package.json 中列出的所有依赖项后,会在部署应用程序之前剥离(Pruning devDependencies)devDependencies 下声明的包。

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

    注意:要跳过 devDependencies 的修剪步骤,请将 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

    【讨论】:

      猜你喜欢
      • 2020-08-14
      • 2021-05-17
      • 2019-02-27
      • 2022-01-18
      • 2021-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-24
      相关资源
      最近更新 更多