如何在heroku中清空数据库

我在Heroku上的RoR3 webapp工作。 如何清空数据库?

要删除数据库,如果使用的是SHARED_DATABASE_URL

 $ heroku pg:reset DATABASE 

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

 $ heroku run rake db:migrate 

用种子数据填充数据库:

 $ heroku run rake db:seed 

– -要么 – –

您可以通过执行以下操作将最后两个( 迁移和种子 )合并为一个操作:

 $ heroku run rake db:setup 

编辑 2014年4月18日: rake db:setup无法与Rails 4,它会失败, Couldn't create database error

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

你可以用几乎所有的rake命令来做到这一点,但也有例外。 例如, db:reset不能通过heroku run rake 。 你必须使用pg:reset来代替。

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

运行Rake命令

重置Postgres数据库

Heroku现在不赞成使用--db选项,所以现在使用:

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

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

 heroku pg:reset DATABASE_URL --confirm my_great_app 

删除数据库:

 $ heroku pg:reset SHARED_DATABASE --confirm NAME_OF_THE_APP 

重新创build数据库:

 $ heroku run rake db:migrate 

种子数据库:

 $ heroku run rake db:seed 

**最后一步

 $ heroku restart 

目前,即。 2017年的方式是:

 heroku pg:reset DATABASE 

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

我联系了Heroku支持,他们确认这是一个最新的gem(我使用的是heroku-2.26.2)

查理 – 我们知道这个问题与'heroku'gem,正在努力解决它。

如果你关心跟随 – 这是问题 – https://github.com/heroku/heroku/issues/356

降级到“heroku”gem的早期版本应该有所帮助。 我一直在使用v2.25.0大多数今天没有问题。

使用以下命令降级:

 gem uninstall heroku gem install heroku --version 2.25.0 

如果您已经安装了多个gem,您可能会看到:

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

只需卸载#2并重新运行命令。 喜悦!

现在命令是

 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 

完整的答案是(对于具有多个数据库的用户):

heroku pg:info – 哪个输出

=== HEROKU_POSTGRESQL_RED < – 这是数据库
计划基本
状态可用

heroku pg:重置HEROKU_POSTGRESQL_RED – 确认app_name

更多信息请参阅: https : //devcenter.heroku.com/articles/heroku-postgresql

现在和heroku不一样了。 试试:heroku pg:重置DATABASE – 确认

今天的命令

 heroku pg:reset --db SHARED_DATABASE_URL 

不工作共享计划,我正在解决使用

 heroku pg:reset SHARED_DATABASE 

使用heroku pg:psqllogin到您的数据库并键入以下命令:

 drop schema public cascade; create schema public; 

检查你的英雄版本。 我刚更新到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 

然后创build您的数据库并将其种在一个命令中:

 heroku run rake db:setup 

现在重新启动并试用您的应用

 heroku restart heroku open 

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

转到dashboard.heroku.comselect你的应用程序,然后你会发现在加载项类别下的数据库,点击它,然后你可以重置数据库。

重置Heroku数据库

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

 heroku apps 

在Heroku上列出你的应用程序。 find您当前的应用程序的名称( 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 

如果您喜欢使用Heroku网站:

  1. 转到https://postgres.heroku.com/databases
  2. select要重置的数据库
  3. 点击右上angular的设置button
  4. 点击“重置数据库”,如下图所示:
  5. 键入“RESET”,然后按OK

heroku数据库重置

这是为我工作。

清除分贝。

 heroku pg:reset --app YOUR_APP 

运行后,您将不得不再次input您的应用程序名称来确认。

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

 heroku run rake db:migrate --app YOUR_APP 

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

 heroku run rake db:seed --app YOUR_APP 

如果您从控制台login,这将在最新的heroku工具栏中完成工作,

heroku pg:重置 – 确认数据库名称

我总是用单线“heroku pg:reset DATABASE”来做到这一点。

最好的解决scheme是你的问题

 heroku pg:reset -r heroku --confirm your_heroku_app_name 

– 确认your_heroku_app_name

不是必需的,但terminal总是问我做那个命令。

在那个命令之后,你将拥有纯数据库,没有结构和东西,之后你可以运行

 heroku run rake db:schema:load -r heroku 

要么

 heroku run rake db:migrate -r heroku