我正在研究Heroku上的Ruby on Rails 3 webapp . 如何清空数据库?
要删除数据库,如果您使用 SHARED_DATABASE_URL :
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 .
rake db:setup
Couldn't create database error
Edit 2014-10-09:您可以在Rails 4中使用 rake db:setup . 它确实会给您一个 Couldn't create database 错误(因为数据库已经使用 heroku pg:reset 命令创建) . 但它也会在错误消息后加载您的数据库架构和种子 .
Couldn't create database
heroku pg:reset
您可以使用几乎任何rake命令执行此操作,但也有例外 . 例如, db:reset 不能通过 heroku run rake 工作 . 你必须使用 pg:reset .
db:reset
heroku run rake
pg:reset
更多信息可以在Heroku的文档中找到:
Running Rake Commands
Reset Postgres DB
Heroku现在已经弃用了 --db 选项,所以现在使用:
--db
heroku pg:reset DATABASE_URL --confirm {the name of your app}
这有点令人困惑,因为你使用文字文本 SHARED_DATABASE 但我写的是 {the name of your app} 替换你的应用程序的名称 . 例如,如果您的应用程序名为my_great_app,那么您使用:
SHARED_DATABASE
{the name of your app}
heroku pg:reset DATABASE_URL --confirm my_great_app
To drop the database:
$ heroku pg:reset SHARED_DATABASE --confirm NAME_OF_THE_APP
To recreate the database:
To seed the database:
**最后一步
$ heroku restart
目前,即 . 2017年的方式是:
heroku pg:reset DATABASE
https://devcenter.heroku.com/articles/heroku-postgresql#pg-reset
现在命令是
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支持,他们确认这是最新宝石的一个错误(我正在使用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:
只需卸载#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
现在它与heroku不同 . 尝试:heroku pg:reset DATABASE - 确认
今天的命令
heroku pg:reset --db SHARED_DATABASE_URL
我没有为共享计划工作,我决心使用
heroku pg:reset SHARED_DATABASE
使用 heroku pg:psql 登录到您的数据库并键入以下命令:
heroku pg:psql
drop schema public cascade; create schema public;
现在,也可以通过其Web界面重置数据库 .
转到dashboard.heroku.com选择您的应用程序,然后您将在加载项类别下找到数据库,单击它然后您可以重置数据库 .
检查你的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 restart heroku open
这对我有用 .
清楚数据库
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
假设您要重置PostgreSQL数据库并将其重新设置,请使用:
heroku apps
在Heroku上列出您的应用程序 . 找到当前应用程序的名称( application_name ) . 然后跑
application_name
heroku config | grep POSTGRESQL
获取数据库的名称 . 一个例子可能是
HEROKU_POSTGRESQL_WHITE_URL
最后,给定 application_name 和 database_url ,你应该运行
database_url
heroku pg:reset `database_url` --confirm `application_name` heroku run rake db:migrate heroku restart
如果您更喜欢使用Heroku网站:
转到https://postgres.heroku.com/databases
选择要重置的数据库
单击右上角的设置按钮
单击"Reset Database",如下所示:
输入"RESET"并按确定
如果您从控制台登录,这将在最新的heroku工具带中完成工作,
heroku pg:reset --confirm database-name
我总是用单行'heroku pg:reset DATABASE'做到这一点 .
最适合您的解决方案是
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
18 回答
要删除数据库,如果您使用
SHARED_DATABASE_URL
:现在到 recreate 没有任何内容的数据库:
使用种子数据 populate 数据库:
您可以通过执行以下操作将最后两个( migrate & seed )合并为一个操作:
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
Heroku现在已经弃用了
--db
选项,所以现在使用:这有点令人困惑,因为你使用文字文本
SHARED_DATABASE
但我写的是{the name of your app}
替换你的应用程序的名称 . 例如,如果您的应用程序名为my_great_app,那么您使用:To drop the database:
To recreate the database:
To seed the database:
**最后一步
目前,即 . 2017年的方式是:
https://devcenter.heroku.com/articles/heroku-postgresql#pg-reset
现在命令是
这样您就可以指定要重置的应用程序数据库 . 然后你就可以跑了
或直接用于上述两个命令
现在重启你的应用程序的最后一步
我联系了Heroku支持,他们确认这是最新宝石的一个错误(我正在使用heroku-2.26.2)
使用以下命令降级:
如果您已经安装了多个gem,则可能会出现以下情况:
3.所有版本
只需卸载#2并重新运行该命令即可 . 喜悦!
完整的答案是(对于具有multi-db的用户):
heroku pg:info - 哪些输出
heroku pg:reset HEROKU_POSTGRESQL_RED --confirm app_name
更多信息,请参阅:https://devcenter.heroku.com/articles/heroku-postgresql
现在它与heroku不同 . 尝试:heroku pg:reset DATABASE - 确认
今天的命令
我没有为共享计划工作,我决心使用
使用
heroku pg:psql
登录到您的数据库并键入以下命令:现在,也可以通过其Web界面重置数据库 .
转到dashboard.heroku.com选择您的应用程序,然后您将在加载项类别下找到数据库,单击它然后您可以重置数据库 .
检查你的heroku版本 . 我刚刚将我更新到2.29.0,如下:
现在你可以运行:
然后创建数据库并在单个命令中播种:
现在重启并尝试使用您的应用:
这对我有用 .
清楚数据库
运行后,您必须再次输入您的应用名称进行确认 .
2.migrate db重新创建 .
3.将种子数据添加到db .
假设您要重置PostgreSQL数据库并将其重新设置,请使用:
在Heroku上列出您的应用程序 . 找到当前应用程序的名称(
application_name
) . 然后跑获取数据库的名称 . 一个例子可能是
最后,给定
application_name
和database_url
,你应该运行如果您更喜欢使用Heroku网站:
转到https://postgres.heroku.com/databases
选择要重置的数据库
单击右上角的设置按钮
单击"Reset Database",如下所示:
输入"RESET"并按确定
如果您从控制台登录,这将在最新的heroku工具带中完成工作,
heroku pg:reset --confirm database-name
我总是用单行'heroku pg:reset DATABASE'做到这一点 .
最适合您的解决方案是
不是必需的,但终端总是问我做那个命令 .
在那个命令之后你将拥有纯数据库,没有结构和东西,之后你可以运行
要么