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


当前回答

如果你从控制台登录,这将在最新的heroku工具带中完成工作,

Heroku pg:reset——确认数据库名

其他回答

我联系了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并重新运行命令。快乐!

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

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

检查你的heroku版本。我刚刚把我的更新到2.29.0,如下:

heroku --version
#=> heroku-gem/2.29.0 (x86_64-linux) ruby/1.9.3

现在你可以运行:

heroku pg:reset DATABASE --confirm YOUR_APP_NAME

然后创建你的数据库,并在一个命令中播种:

heroku run rake db:setup

现在重新启动并尝试应用程序:

heroku restart
heroku open

最好的解决办法是

heroku pg:reset -r heroku  --confirm your_heroku_app_name

——确认your_heroku_app_name

不是必须的,但是终端总是问我做那个命令。

在这个命令之后,你将有一个纯db,没有结构和东西,之后你就可以运行了

heroku run rake db:schema:load -r heroku

or

heroku run rake db:migrate -r heroku

删除数据库:

$ heroku pg:reset SHARED_DATABASE --confirm NAME_OF_THE_APP

重新创建数据库:

$ heroku run rake db:migrate

为数据库播种:

$ heroku run rake db:seed

* *最后一步

$ heroku restart