Postgresql 在Travis deploy的运行选项中重置Heroku Postgres数据库

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,因为它具有严格的权限。但是

在使用Travis CI成功部署到Heroku之后,我想重置我的数据库,并使用一些默认数据为其种子

Travis文档建议将此类任务放在.Travis.yml文件中“部署”任务的“运行”选项中,例如:

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"