Warm tip: This article is reproduced from serverfault.com, please click

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

(nestjs - How to use Prisma 2 CLI on Heroku)

发布于 2020-12-06 06:57:57

我已经在使用Prisma 2的Heroku上部署了NestJs应用程序,但是当我npx prisma --version在heroku bash上运行命令 Prisma CLI version: prisma/1.34.10 (linux-x64) node-v14.15.0时却得到了但我已经安装了pyramida 2.11.0,我想使用Prisma 2 cli来对我现有的数据库进行内省,然后运行pyramida generate。

Questioner
don
Viewed
0
don 2020-12-09 17:49:02

我设法对现有数据库进行内省,并通过在脚本部分的package.json上添加heroku-postbuild命令来运行pyramida生成,如下所示:

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

现在,当我按下heroku时,heroku-postbuild命令将被执行。

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

heroku-postbuild在Heroku安装依赖项之后但在Heroku修剪并缓存依赖项之前运行。因此,为什么指定的pyramida introspect && pyramida生成的原因将使用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