我正在构建使用MongoDB并部署到Heroku的NodeJS应用程序 我正在使用east migration library,我想在部署过程中运行迁移命令。
我该怎么做?
我应该分包构建包还是更方便?
答案 0 :(得分:0)
有一种更简单的方法。
当您的应用程序部署到Heroku时,Heroku正在执行int function()
以安装所有依赖项。完成后,将执行npm install --production
脚本。您可以在postinstall
文件中定义postinstall
脚本。在此脚本中,您可以运行迁移。
以下是我在基于Node on Fire的项目中使用的片段。这将在部署到Heroku时执行package.json
和grunt build
(否则执行grunt release
。)
npm install
在您的情况下,使用以下值{
..
"scripts": {
"postinstall": "./node_modules/grunt-cli/bin/grunt build && ./node_modules/grunt-cli/bin/grunt release"
},
..
}
创建postinstall
。这应该在Heroku上执行您的迁移。您应该确保./node_modules/east/bin/east migrate
中列出了east
,而不是dependencies
,因为Heroku没有安装devDependencies
。您也不能在devDependencies
脚本中使用任何全局依赖项,因为您的依赖项永远不会全局安装在Heroku上(使用默认的buildpack)。