我正在Heroku上开发Ruby on Rails 3 web应用程序。如何清空数据库?


当前回答

我联系了Heroku的支持人员,他们确认这是最新宝石的bug(我正在使用Heroku -2.26.2)

查理——我们已经意识到‘heroku’宝石的这个问题了 正在努力解决它。 问题来了,如果你愿意的话 https://github.com/heroku/heroku/issues/356 降级到早期版本的“heroku”宝石应该会有所帮助。今天大部分时间我都在使用v2.25.0,没有任何问题。

使用以下命令降级:

gem uninstall heroku

gem install heroku --version 2.25.0

如果你已经安装了多个宝石,你可能会看到:

选择gem卸载: 1. heroku-2.25.0 2. heroku-2.26.2 3.所有版本

只需卸载#2并重新运行命令。快乐!

其他回答

完整的答案是(对于有多个db的用户):

Heroku pg:info -输出

=== HEROKU_POSTGRESQL_RED <——这是DB 计划基本 可用状态

heroku pg:reset HEROKU_POSTGRESQL_RED——确认app_name

更多信息请访问:https://devcenter.heroku.com/articles/heroku-postgresql

现在也可以通过他们的web界面重置数据库。

去dashboard。heroku。com选择你的应用,然后你会在附加组件类别下找到数据库,点击它,然后你可以重置数据库。

现在赫鲁就不一样了。试一试: heroku pg:reset DATABASE——确认

要删除数据库,如果你使用SHARED_DATABASE_URL:

$ heroku pg:reset DATABASE_URL

现在重新创建一个没有任何内容的数据库:

$ heroku run rake db:migrate  

用种子数据填充数据库:

$ heroku run rake db:seed

——或

你可以通过执行以下命令将最后两个(migrate & seed)合并为一个动作:

$ heroku run rake db:setup

编辑2014-04-18:rake db:setup不能与Rails 4一起工作,它失败了,提示不能创建数据库错误。

编辑2014-10-09:你可以在Rails 4中使用rake db:setup。它会给你一个cannot 't create database错误(因为数据库已经使用heroku pg:reset命令创建了)。但是它也会在错误消息之后加载数据库模式和种子。

您可以使用几乎任何rake命令来实现这一点,但也有例外。例如,db:reset不能通过heroku运行rake工作。你必须使用pg:reset来代替。

更多信息可以在Heroku的文档中找到:

运行Rake命令

重置Postgres DB

今天的命令

heroku pg:reset --db SHARED_DATABASE_URL

不为共享计划工作,我决定使用

heroku pg:reset SHARED_DATABASE