在使用Travis CI成功部署到Heroku之后,我想重置我的数据库并使用一些默认数据播种。
Travis文档说,将这种任务放在.travis.yml文件中'deploy'任务的'run'选项中,例如:
deploy:
provider: heroku
api_key: ...
run:
- "rake db:migrate"
- restart
- "rake cleanup"
'rake db:reset'不适用于Postgres,因为它具有严格的权限。但是,我可以使用'heroku pg:reset HEROKU_POSTGRESQL_GOLD_URL'从命令行重置db(在从'heroku pg:info'获取db url之后)。
但是如何在部署后从Travis运行此命令?我试过了
run:
- pg:reset HEROKU_POSTGRESQL_GOLD_URL
和
run:
- "pg:reset HEROKU_POSTGRESQL_GOLD_URL"
和
run:
- "heroku pg:reset HEROKU_POSTGRESQL_GOLD_URL"
但数据库永远不会重置。我得到'bash:pg:reset:command not found'或'bash:heroku:command not found'
答案 0 :(得分:0)
您需要远程连接到travis环境并从toolbelt.heroku.com安装Heroku工具带并执行heroku login
进行身份验证。那将安装你需要的heroku可执行文件。
答案 1 :(得分:0)
run
的{{1}}部分中的deploy
命令会在您的实际应用程序bash上调用该命令。您的第二个示例.travis.yml
是正确的。但是,这不适用于您的pg命令,因为pg是heroku工具箱的一部分,并且未安装在您的heroku应用程序vm上,并且默认情况下也未安装在travis vm上。您可以在travis-ci vm上安装heroku工具带,如果您愿意,可以调用命令- "pg:reset HEROKU_POSTGRESQL_GOLD_URL"
,这样可行。