Postgresql 在Travis deploy的运行选项中重置Heroku Postgres数据库
在使用Travis CI成功部署到Heroku之后,我想重置我的数据库,并使用一些默认数据为其种子 Travis文档建议将此类任务放在.Travis.yml文件中“部署”任务的“运行”选项中,例如:Postgresql 在Travis deploy的运行选项中重置Heroku Postgres数据库,postgresql,heroku,travis-ci,Postgresql,Heroku,Travis Ci,在使用Travis CI成功部署到Heroku之后,我想重置我的数据库,并使用一些默认数据为其种子 Travis文档建议将此类任务放在.Travis.yml文件中“部署”任务的“运行”选项中,例如: deploy: provider: heroku api_key: ... run: - "rake db:migrate" - restart - "rake cleanup" “rake db:reset”不适用于Postgres,因为它具有严格的权限。但是
deploy:
provider: heroku
api_key: ...
run:
- "rake db:migrate"
- restart
- "rake cleanup"
“rake db:reset”不适用于Postgres,因为它具有严格的权限。但是,我可以使用“heroku pg:reset heroku\u POSTGRESQL\u GOLD\u URL”(从“heroku pg:info”获取数据库URL后)从命令行重置数据库
但部署后如何从Travis运行此命令?我试过了
run:
- pg:reset HEROKU_POSTGRESQL_GOLD_URL
及
及
但数据库永远不会重置。我要么得到“bash:pg:reset:command not found”要么得到“bash:heroku:command not found”您需要远程连接到travis环境,从toolbelt.heroku.com安装heroku toolbelt,并进行
heroku登录
验证。这将安装所需的heroku可执行文件。在的deploy
部分中的run
命令。travis.yml
在实际应用程序bash上调用该命令。您的第二个示例-“pg:reset HEROKU\u POSTGRESQL\u GOLD\u URL”
是正确的。但是,这不适用于pg命令,因为pg是heroku工具带的一部分,不安装在heroku应用程序vm上,默认情况下也不安装在travis vm上。如果愿意,您可以在travis ci vm上安装heroku toolbelt,并调用命令heroku pg:reset
,这样就可以了
run:
- "pg:reset HEROKU_POSTGRESQL_GOLD_URL"
run:
- "heroku pg:reset HEROKU_POSTGRESQL_GOLD_URL"