如何清空Heroku数据库

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

170884 次浏览

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

$ heroku pg:reset DATABASE_URL

现在到重新创建数据库,其中没有任何内容:

$ heroku run rake db:migrate

填充数据库与你的种子数据:

$ heroku run rake db:seed

——或

你可以通过执行以下命令将后两个(迁移,种子)组合成一个动作:

$ heroku run rake db:setup

编辑 2014-04-18: rake db:setup不适用于Rails 4,它失败于Couldn't create database error

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

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

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

Running rake commands .

Reset Postgres DB

今天的命令

heroku pg:reset --db SHARED_DATABASE_URL

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

heroku pg:reset SHARED_DATABASE

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

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

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

heroku pg:reset DATABASE_URL --confirm my_great_app

删除数据库:

$ heroku pg:reset SHARED_DATABASE --confirm NAME_OF_THE_APP

重新创建数据库:

$ heroku run rake db:migrate

为数据库播种:

$ heroku run rake db:seed

* *最后一步

$ heroku restart

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

查理,我们已经意识到‘heroku’宝石的这个问题了

下面是一个问题,如果你想知道的话 https://github.com/heroku/heroku/issues/356 < / p >

降级到早期版本的“heroku”宝石应该会有所帮助。今天大部分时间我都在使用v2.25.0,没有任何问题。

使用以下命令降级:

gem uninstall heroku


gem install heroku --version 2.25.0

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

Select gem to uninstall:
1. heroku-2.25.0
2. heroku-2.26.2
3. All versions

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

我总是用一行程序“heroku pg:reset DATABASE”来做这件事。

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

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

登录到您的DB使用

. heroku pg:psql,然后输入以下命令
drop schema public cascade;
create schema public;

水流。2017年的做法是:

heroku pg:reset DATABASE

https://devcenter.heroku.com/articles/heroku-postgresql#pg-reset

现在命令是

heroku pg:reset DATABASE_URL --confirm your_app_name

这样你就可以指定你想要重置哪个应用的db。 然后执行

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

或直接用于上述两个命令

heroku run rake db:setup

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

heroku restart

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

heroku pg:信息 -输出

=== HEROKU_POSTGRESQL_RED <——这是DB
计划基本< br > 状态可用< BR > < / p >

heroku pg:reset HEROKU_POSTGRESQL_RED——确认app_name

更多信息可在:https://devcenter.heroku.com/articles/heroku-postgresql中找到

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

heroku apps

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

heroku config | grep POSTGRESQL

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

HEROKU_POSTGRESQL_WHITE_URL

最后,给定application_namedatabase_url,你应该运行

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

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

dashboard.heroku.com选择你的应用程序,然后你会在add-ons类别下找到数据库,点击它,然后你可以重置数据库。

Reset Heroku Database

如果您更喜欢使用Heroku网站:

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

heroku database reset

最好的解决办法是

heroku pg:reset -r heroku  --confirm your_heroku_app_name

——确认your_heroku_app_name

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

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

heroku run rake db:schema:load -r heroku

heroku run rake db:migrate -r heroku

这是对我有用的

1.明确db . < / p >

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工具带中完成工作,

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