我已经在使用Prisma 2的Heroku上部署了NestJs应用程序,但是当我在heroku上运行命令npx prisma --version时,我得到了Prisma CLI version: prisma/1.34.10 (linux-x64) node-v14.15.0,但是我已经安装了prisma 2.11.0,我想使用Prisma 2 cli来检查我现有的数据库,并运行prisma generate。
发布于 2020-12-06 22:07:29
通过在脚本部分的package.json中添加heroku-postbuild命令,我成功地回顾了我现有的数据库并运行prisma生成,如下所示:
{
"scripts": {
"heroku-postbuild": "prisma introspect && prisma generate"
}
}现在,当我推到heroku时,将执行heroku-postbuild命令。
Note:默认情况下,在安装package.json中列出的依赖项和devDependencies后,Heroku将在部署应用程序之前删除(修剪devDependencies)在devDependencies下声明的包。
heroku-postbuild在Heroku安装依赖项之后运行,但在Heroku修剪和缓存依赖项之前运行。因此,为什么指定的prisma内省&& prisma生成将使用在package.json上指定的prisma。
备注:跳过devDependencies set NPM_CONFIG_PRODUCTION的剪枝步骤,如下所示,以便我们可以在运行时访问在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
https://stackoverflow.com/questions/65165511
复制相似问题