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


当前回答

今天的命令

heroku pg:reset --db SHARED_DATABASE_URL

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

heroku pg:reset SHARED_DATABASE

其他回答

这对我来说很管用。 1.清晰的db。

heroku pg:reset --app YOUR_APP

运行后,你必须再次输入你的应用程序名称来确认。

2.迁移数据库重新创建。

heroku run rake db:migrate  --app YOUR_APP

3.将种子数据添加到数据库。

heroku run rake db:seed --app YOUR_APP

检查你的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 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 -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