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

其他回答

Heroku现在已经弃用了——db选项,所以现在使用:

heroku pg:reset DATABASE_URL --confirm {the name of your app}

这有点令人困惑,因为你使用文字文本SHARED_DATABASE,但我已经写了{你的应用程序的名称}替换你的应用程序的名称。例如,如果你的应用程序被称为my_great_app,那么你使用:

heroku pg:reset DATABASE_URL --confirm my_great_app

现在命令是

heroku pg:reset DATABASE_URL --confirm your_app_name

这样你就可以指定要重置哪个应用的数据库。 然后你就可以跑了

heroku run rake db:migrate 
heroku run rake db:seed 

或直接用于上述两个命令

heroku run rake db:setup 

现在是重启应用的最后一步

heroku restart

这对我来说很管用。 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网站:

访问https://postgres.heroku.com/databases 选择要重置的数据库 点击右上角的设置按钮 点击“重置数据库”,如下图所示: 输入“RESET”,然后按“ok”

假设你想重置你的PostgreSQL数据库并将其备份,使用:

heroku apps

在Heroku上列出你的申请。找到当前应用程序的名称(application_name)。然后运行

heroku config | grep POSTGRESQL

来获取数据库的名称。一个例子是

HEROKU_POSTGRESQL_WHITE_URL

最后,给定application_name和database_url,您应该运行

heroku pg:reset `database_url` --confirm `application_name`
heroku run rake db:migrate
heroku restart