如何在 Heroku 上使用 Prisma 2 CLI [英] How to use Prisma 2 CLI on Heroku

查看:66
本文介绍了如何在 Heroku 上使用 Prisma 2 CLI的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have deployed NestJs application on Heroku which uses Prisma 2, but when I run the command npx prisma --version on heroku bash I get Prisma CLI version: prisma/1.34.10 (linux-x64) node-v14.15.0 but I have installed prisma 2.11.0, I want to use Prisma 2 cli to introspect my existing database, and run prisma generate.

推荐答案

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

I managed to introspect my existing database and run prisma generate by adding heroku-postbuild command on my package.json in scripts section as show below:

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

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

Now when I push to heroku the heroku-postbuild command will be executed.

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

Note: By default, Heroku after installing all dependencies listed in package.json under dependencies and devDependencies will strip out (Pruning devDependencies) the packages declared under devDependencies before deploying the application.

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

heroku-postbuild runs after Heroku installs dependencies, but before Heroku prunes and caches dependencies. Thus why the specified prisma introspect && prisma generate will use the prisma cli specified on package.json.

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

Note: To skip the pruning step of devDependencies set NPM_CONFIG_PRODUCTION to false as shown below, so that we can access packages declared under devDependencies at runtime:

heroku 配置:设置 NPM_CONFIG_PRODUCTION=false

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

After setting NPM_CONFIG_PRODUCTION to false now if we run npx prisma --version we will get the installed version from package.json

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

这篇关于如何在 Heroku 上使用 Prisma 2 CLI的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆