1

我已经看到了这个问题的一些答案,但似乎没有一个对我有用。不小心跑了heroku run rake db:seed两次。所以在我的数据库中有双重日期。所以我想删除表,重新迁移并再次运行种子(这次一次;))到目前为止我看到的解决方案告诉我运行:heroku pg:reset SHARED_DATABASEheroku pg:reset SHARED_DATABASE --confirm <myAppName>。两者都不起作用。我得到的错误是这样的:

    heroku pg:reset SHARED_DATABASE
/usr/local/lib/ruby/gems/1.9.1/gems/heroku-2.8.0/lib/heroku/pg_resolver.rb:125:in `parse_config': undefined method `each' for nil:NilClass (NoMethodError)
    from /usr/local/lib/ruby/gems/1.9.1/gems/heroku-2.8.0/lib/heroku/pg_resolver.rb:116:in `parse_config'
    from /usr/local/lib/ruby/gems/1.9.1/gems/heroku-2.8.0/lib/heroku/pg_resolver.rb:79:in `initialize'
    from /usr/local/lib/ruby/gems/1.9.1/gems/heroku-2.8.0/lib/heroku/pg_resolver.rb:34:in `new'
    from /usr/local/lib/ruby/gems/1.9.1/gems/heroku-2.8.0/lib/heroku/pg_resolver.rb:34:in `resolve_db'
    from /usr/local/lib/ruby/gems/1.9.1/gems/heroku-2.8.0/lib/heroku/command/pg.rb:70:in `reset'
    from /usr/local/lib/ruby/gems/1.9.1/gems/heroku-2.8.0/lib/heroku/command.rb:114:in `run'
    from /usr/local/lib/ruby/gems/1.9.1/gems/heroku-2.8.0/bin/heroku:14:in `<top (required)>'
    from /usr/local/bin/heroku:19:in `load'
    from /usr/local/bin/heroku:19:in `<main>'

我想要做的就是能够删除表,然后用我的种子数据重新填充它。任何帮助将不胜感激。

4

4 回答 4

0

heroku pg:reset是正确的命令,但是您有旧版本的 gem,您可能需要升级。此外,对于最新的 Postgres 堆栈,SHARED_DATABASE 配置变量不存在 - Heroku 文档说该命令应该是heroku pg:reset DATABASE.

于 2013-01-25T20:17:35.677 回答
0

我从 Heroku 获取数据库变量名称的方法是运行heroku config | grep POSTGRESQL. 这将输出变量的名称及其 URL。然后,您可以通过 go 删除数据库heroku pg:reset <DATABASE>(例如,可能是heroku pg:reset HEROKU_POSTGRESQL_CHARCOAL_URL)。然后,您应该能够再次迁移数据库并填充它,但是您通常会这样做。

于 2013-01-26T10:17:28.317 回答
0

您可以简单地进入 heroku 控制台并删除种子数据。

heroku run console

并删除表中的所有项目。

于 2013-01-25T17:42:44.153 回答
0

我找到了一个似乎有效的答案。我heroku run rake db:rollback能够删除表,然后迁移并重新植入数据。感谢您的输入。

于 2013-01-25T22:26:25.030 回答