在Travis部署的运行选项中重置Heroku Postgres数据库

时间:2014-02-17 16:26:18

标签: postgresql heroku travis-ci

在使用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'

2 个答案:

答案 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",这样可行。