我正在 Heroku 上开发一个 Ruby on Rails 3 的 Web 应用,如何清空数据库?
我正在 Heroku 上开发一个 Ruby on Rails 3 的 Web 应用,如何清空数据库?
如果您正在使用SHARED_DATABASE_URL
,则可以删除数据库:
$ heroku pg:reset DATABASE_URL
现在需要重新创建一个空的数据库:
$ heroku run rake db:migrate
为了用你的种子数据填充数据库:
$ heroku run rake db:seed
您可以通过执行以下代码将最后两个步骤(migrate & seed)合并为一个操作:
$ heroku run rake db:setup
编辑 2014-04-18: rake db:setup
在Rails 4中不能使用,因为会出现无法创建数据库错误
。
编辑 2014-10-09: 您可以在Rails 4中使用rake db:setup
。它确实会出现无法创建数据库
的错误(因为使用heroku pg:reset
命令已经创建了数据库)。但是,在错误消息后,它也会加载您的数据库架构和种子。
你几乎可以用任何rake命令来做到这一点,但也有例外。例如,db:reset
不能通过heroku run rake
执行。相反,您必须使用pg:reset
。
更多信息可以在Heroku的文档中找到:
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 SHARED_DATABASE --confirm NAME_OF_THE_APP
重新创建数据库的方法:
$ heroku run rake db:migrate
种子数据库:
$ heroku run rake db:seed
**最后一步
$ heroku restart
heroku run rake db:migrate
不再重新创建数据库。 - Rots2017年最新的做法是:
heroku pg:reset DATABASE
https://devcenter.heroku.com/articles/heroku-postgresql#pg-reset
heroku run rake db:migrate db:seed
。 - aaron-coding现在的命令是
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支持,他们确认这是最新的gem(我正在使用heroku-2.26.2)的一个bug。
Charlie - 我们已经意识到了与“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 HEROKU_POSTGRESQL_RED --confirm app_name 更多信息请查看:https://devcenter.heroku.com/articles/heroku-postgresql=== HEROKU_POSTGRESQL_RED <-- 这是数据库
计划 基础版
状态 可用
heroku pg:reset --db SHARED_DATABASE_URL
对于共享计划无效,我使用以下方法解决:
heroku pg:reset SHARED_DATABASE
heroku pg:reset DATABASE
。 - Haris Krajinaheroku pg:reset DATABASE --confirm appname
。 - GangstaGraham