我已经在使用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。
我设法对现有数据库进行内省,并通过在脚本部分的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