Answers:
要删除数据库(如果正在使用)SHARED_DATABASE_URL
:
$ heroku pg:reset DATABASE_URL
现在重新创建没有任何内容的数据库:
$ heroku run rake db:migrate
要填充你的种子数据的数据库:
$ heroku run rake db:seed
- -要么 - -
您可以通过执行以下命令将最后两个(migration&seed)组合为一个动作:
$ heroku run rake db:setup
编辑 2014-04-18:rake db:setup
不适用于Rails 4,失败时显示Couldn't create database error
。
编辑 2014年10月9日:您可以rake db:setup
使用Rails 4,它给你一个Couldn't create database
错误(因为数据库是使用已创建的heroku pg:reset
命令)。但是它还会在错误消息之后加载数据库模式和种子。
您几乎可以使用任何rake命令来执行此操作,但是也有例外。例如,db:reset
不适用于heroku run rake
。您必须改为使用pg:reset
。
可以在Heroku的文档中找到更多信息:
SHARED_DATABASE_URL is deprecated, please use SHARED_DATABASE
heroku pg:reset DATABASE
heroku pg:reset DATABASE --confirm appname
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
SHARED_DATABASE
删除数据库:
$ 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
不再重新创建数据库
当前,即。2017年的方法是:
heroku pg:reset DATABASE
https://devcenter.heroku.com/articles/heroku-postgresql#pg-reset
heroku run rake db:migrate db:seed
现在的命令是
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)
查理(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
如果您已经安装了多个宝石,则可能会看到:
Select gem to uninstall: 1. heroku-2.25.0 2. heroku-2.26.2 3. All versions
只需卸载#2并重新运行该命令即可。喜悦!
在完整的答案是(与多分贝用户):
heroku pg:info-输出
=== HEROKU_POSTGRESQL_RED <-这是 可用的DB
Plan基本
状态
heroku pg:重置HEROKU_POSTGRESQL_RED-确认app_name
有关更多信息,请访问:https : //devcenter.heroku.com/articles/heroku-postgresql
检查您的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
如果您更喜欢使用Heroku网站:
假设您想重置PostgreSQL数据库并进行备份,请使用:
heroku apps
在Heroku上列出您的应用程序。查找当前应用程序的名称(application_name
)。然后跑
heroku config | grep POSTGRESQL
获取数据库的名称。一个例子可能是
HEROKU_POSTGRESQL_WHITE_URL
最后,根据application_name
和database_url
,您应该运行
heroku pg:reset `database_url` --confirm `application_name`
heroku run rake db:migrate
heroku restart
如果您是从控制台登录的,则将在最新的heroku工具栏中执行此操作,
heroku pg:重置-确认数据库名称
最好的解决方案是
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