如何清空Heroku数据库

349 heroku ruby-on-rails-3

我正在研究Heroku上的Ruby on Rails 3 webapp.如何清空数据库?

Sha*_*aun 680

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

$ heroku pg:reset DATABASE_URL
Run Code Online (Sandbox Code Playgroud)

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

$ heroku run rake db:migrate  
Run Code Online (Sandbox Code Playgroud)

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

$ heroku run rake db:seed
Run Code Online (Sandbox Code Playgroud)

- -要么 - -

您可以通过执行以下操作将最后两个(migrate和seed)合并为一个操作:

$ heroku run rake db:setup
Run Code Online (Sandbox Code Playgroud)

编辑 2014-04-18:rake db:setup无法使用Rails 4,它失败了Couldn't create database error.

编辑 2014-10-09:您可以使用rake db:setupRails 4.它确实会给您一个Couldn't create database错误(因为数据库已经使用该heroku pg:reset命令创建).但它也会在错误消息后加载您的数据库架构和种子.

您可以使用几乎任何rake命令执行此操作,但也有例外.例如,db:reset不起作用heroku run rake.你必须pg:reset改用.

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

运行Rake命令

重置Postgres DB

  • 谢谢.实际上,"heroku pg:reset --db SHARED_DATABASE_URL"就可以了.但是你让我朝着正确的方向前进. (21认同)
  • 他们现在又改变了它``heroku pg:reset DATABASE` (18认同)
  • 要节省几秒钟的时间,请使用`heroku pg:reset DATABASE --confirm appname` (8认同)
  • 实际上你应该检查你的schema.rb,你应该使用:rake db:schema:load (6认同)
  • @JayGodse Heroku现在说'SHARED_DATABASE_URL已被弃用,请使用SHARED_DATABASE` (5认同)
  • 为了完整起见:要获取DATABASE的值,请运行`heroku pg:info` (3认同)

Dav*_*Sag 97

Heroku --db现在已弃用该选项,因此现在使用:

heroku pg:reset DATABASE_URL --confirm {the name of your app}
Run Code Online (Sandbox Code Playgroud)

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

heroku pg:reset DATABASE_URL --confirm my_great_app
Run Code Online (Sandbox Code Playgroud)

  • 如果你只是粘贴跳过(包括)后面的位 - heroku将告诉你输入什么.. (3认同)

Geo*_*oub 64

要删除数据库:

$ heroku pg:reset SHARED_DATABASE --confirm NAME_OF_THE_APP
Run Code Online (Sandbox Code Playgroud)

要重新创建数据库:

$ heroku run rake db:migrate
Run Code Online (Sandbox Code Playgroud)

种子数据库:

$ heroku run rake db:seed
Run Code Online (Sandbox Code Playgroud)

**最后一步

$ heroku restart
Run Code Online (Sandbox Code Playgroud)

  • 我比其他任何人更喜欢这个答案.这在我的Heroku场景中完美运行,我相信它的评价很高! (4认同)

小智 13

现在命令是

heroku pg:reset DATABASE_URL --confirm your_app_name
Run Code Online (Sandbox Code Playgroud)

这样您就可以指定要重置的应用程序数据库.然后你就可以跑了

heroku run rake db:migrate 
heroku run rake db:seed 
Run Code Online (Sandbox Code Playgroud)

或直接用于上述两个命令

heroku run rake db:setup 
Run Code Online (Sandbox Code Playgroud)

现在重启你的应用程序的最后一步

heroku restart
Run Code Online (Sandbox Code Playgroud)


sup*_*ves 11

我联系了Heroku支持,他们确认这是最新宝石的一个错误(我正在使用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
Run Code Online (Sandbox Code Playgroud)

如果您已经安装了多个gem,则可能会显示以下内容:

Select gem to uninstall:
 1. heroku-2.25.0
 2. heroku-2.26.2
 3. All versions
Run Code Online (Sandbox Code Playgroud)

只需卸载#2并重新运行该命令即可.喜悦!


Alv*_* K. 9

完整的答案是(与多分贝用户):

heroku pg:info - 输出

=== HEROKU_POSTGRESQL_RED < - 这是 可用的DB
计划基本
状态

heroku pg:reset HEROKU_POSTGRESQL_RED - 确认app_name

更多信息,请访问:https://devcenter.heroku.com/articles/heroku-postgresql


jst*_*nno 8

现在它与heroku不同.尝试:heroku pg:reset DATABASE - 确认


mma*_*eti 7

今天的命令

heroku pg:reset --db SHARED_DATABASE_URL
Run Code Online (Sandbox Code Playgroud)

不适用于共享计划,我决心使用

heroku pg:reset SHARED_DATABASE
Run Code Online (Sandbox Code Playgroud)


man*_*h_s 6

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

drop schema public cascade;
create schema public;
Run Code Online (Sandbox Code Playgroud)


Luí*_*lho 6

现在,也可以通过其Web界面重置数据库.

转到dashboard.heroku.com选择您的应用程序,然后您将在加载项类别下找到数据库,单击它然后您可以重置数据库.

重置Heroku数据库


Fla*_*che 5

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

heroku --version
#=> heroku-gem/2.29.0 (x86_64-linux) ruby/1.9.3
Run Code Online (Sandbox Code Playgroud)

现在你可以运行:

heroku pg:reset DATABASE --confirm YOUR_APP_NAME
Run Code Online (Sandbox Code Playgroud)

然后创建数据库并在单个命令中播种:

heroku run rake db:setup
Run Code Online (Sandbox Code Playgroud)

现在重启并试用你的应用:

heroku restart
heroku open
Run Code Online (Sandbox Code Playgroud)


KIO*_*KIO 5

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

  1. 转到https://postgres.heroku.com/databases
  2. 选择您要重置的数据库
  3. 单击右上角的设置按钮
  4. 点击“重置数据库”,如下图:
  5. 输入“重置”并按确定

Heroku 数据库重置