首页 文章

如何清空Heroku数据库

提问于
浏览
340

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

18 回答

  • 669

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

    $ heroku pg:reset DATABASE_URL
    

    现在到 recreate 没有任何内容的数据库:

    $ heroku run rake db:migrate
    

    使用种子数据 populate 数据库:

    $ heroku run rake db:seed
    
    • -要么 - -

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

    $ heroku run rake db:setup
    

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

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

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

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

    Running Rake Commands

    Reset Postgres DB

  • 9

    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
    
  • 11

    To drop the database:

    $ heroku pg:reset SHARED_DATABASE --confirm NAME_OF_THE_APP
    

    To recreate the database:

    $ heroku run rake db:migrate
    

    To seed the database:

    $ heroku run rake db:seed
    

    **最后一步

    $ heroku restart
    
  • 63

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

    heroku pg:reset DATABASE
    

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

  • 5

    现在命令是

    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
    
  • 3

    我联系了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
    

    如果您已经安装了多个gem,则可能会出现以下情况:

    选择要卸载的gem:

    1. heroku-2.25.0
    2. heroku-2.26.2
      3.所有版本

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

  • 2

    完整的答案是(对于具有multi-db的用户):

    heroku pg:info - 哪些输出

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

    heroku pg:reset HEROKU_POSTGRESQL_RED --confirm app_name

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

  • 7

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

  • 2

    今天的命令

    heroku pg:reset --db SHARED_DATABASE_URL
    

    我没有为共享计划工作,我决心使用

    heroku pg:reset SHARED_DATABASE
    
  • 8

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

    drop schema public cascade;
    create schema public;
    
  • 13

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

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

    Reset Heroku Database

  • 1

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

    这对我有用 .

    清楚数据库

    heroku pg:reset --app YOUR_APP
    

    运行后,您必须再次输入您的应用名称进行确认 .

    2.migrate db重新创建 .

    heroku run rake db:migrate  --app YOUR_APP
    

    3.将种子数据添加到db .

    heroku run rake db:seed --app YOUR_APP
    
  • 0

    假设您要重置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
    
  • 41

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

    heroku database reset

  • 0

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

    heroku pg:reset --confirm database-name

  • 6

    我总是用单行'heroku pg:reset DATABASE'做到这一点 .

  • 95

    最适合您的解决方案是

    heroku pg:reset -r heroku  --confirm your_heroku_app_name
    
    • 确认your_heroku_app_name

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

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

    heroku run rake db:schema:load -r heroku
    

    要么

    heroku run rake db:migrate -r heroku
    

相关问题