清除或重新创建Ruby on Rails数据库
我有一个充满数据的开发Ruby on Rails数据库。 我想删除所有内容并重建数据库。 我正在考虑使用类似的东西:
rake db:recreate
这可能吗?
#1楼
我今天对我的rails架构做了很多改动。 我意识到我需要在层次结构中另外添加两个模型,而另一些模型则需要删除。 模型和控制器需要进行许多微小的更改。
我添加了两个新模型并使用以下方法创建它们:
rake db:migrate
然后我编辑了schema.rb文件。 我手动删除了不再需要的旧模型,根据需要更改了外键字段,只是重新排序了一下,让我更清楚。 我删除了所有迁移,然后通过以下方式重新运行构建:
rake db:reset
它工作得很好。 当然,所有数据都必须重新加载。 Rails意识到迁移已被删除并重置高水位标记:
-- assume_migrated_upto_version(20121026094813, ["/Users/sean/rails/f4/db/migrate"])
#2楼
您可以使用以下命令行:
rake db:drop db:create db:migrate db:seed db:test:clone
#3楼
根据Rails指南 ,应该使用这一个schema.rb
因为它将从schema.rb
加载而不是逐个重新加载迁移文件:
rake db:reset
#4楼
你可以手动做:
rake db:drop
rake db:create
rake db:migrate
或者只是rake db:reset
,它将运行上述步骤,但也将运行db/seeds.rb
文件。
一个额外的细微差别是rake db:reset
直接从schema.rb
文件加载,而不是再次运行所有迁移文件。
在所有情况下,您的数据都会被吹走。
#5楼
要删除特定数据库,可以在rails控制台上执行此操作:
$rails console
Loading development environment
1.9.3 > ActiveRecord::Migration.drop_table(:<table_name>)
1.9.3 > exit
然后再次迁移DB
$bundle exec rake db:migrate
#6楼
从命令行运行
rake db:migrate:reset
#7楼
在Rails 4上,所有需要的都是
$ rake db:schema:load
这将删除数据库上的全部内容,并从schema.rb文件重新创建模式,而无需逐个应用所有迁移。
#8楼
只需发出以下步骤:删除数据库,然后重新创建数据库,迁移数据,如果有种子,则播种数据库:
rake db:drop db:create db:migrate db:seed
由于rake
的默认环境是开发 ,如果在spec测试中看到异常,则应该为测试环境重新创建db,如下所示:
RAILS_ENV=test rake db:drop db:create db:migrate
在大多数情况下,测试数据库是在测试过程中播种的,因此不需要传递db:seed
任务操作。 否则,您应该准备数据库:
rake db:test:prepare
要么
RAILS_ENV=test rake db:seed
此外,要使用重新创建任务,您可以将以下代码添加到Rakefile中:
namespace :db dotask :recreate => [ :drop, :create, :migrate ] doif ENV[ 'RAILS_ENV' ] !~ /test|cucumber/Rake::Task[ 'db:seed' ].invokeendend
end
然后发出:
rake db:recreate
#9楼
用得像
rake db:drop db:create db:migrate db:seed
全部在一条线上。 这更快,因为环境不会一次又一次地重新加载。
db:drop - 将丢弃数据库。
db:create - 将创建数据库(host / db / password将取自config / database.yml)
db:migrate - 将从目录(db / migration / .rb)*运行现有迁移。
db:seed - 将从目录(db / migration / seed.rb)运行种子数据。
我通常喜欢:
rake db:reset
一次做所有。
干杯!
#10楼
更新:在Rails 5中,可以通过以下命令访问此命令:
rails db:purge db:create db:migrate RAILS_ENV=test
从最新的rails 4.2版本开始,您现在可以运行:
rake db:purge
来源: 提交
# desc "Empty the database from DATABASE_URL or config/database.yml for the current RAILS_ENV (use db:drop:all to drop all databases in the config). Without RAILS_ENV it defaults to purging the development and test databases."task :purge => [:load_config] doActiveRecord::Tasks::DatabaseTasks.purge_currentend
它可以像上面提到的一起使用:
rake db:purge db:create db:migrate RAILS_ENV=test
#11楼
在rails 4.2上,删除所有数据但保留数据库
$ bin/rake db:purge && bin/rake db:schema:load
https://github.com/rails/rails/blob/4-2-stable/activerecord/CHANGELOG.md
#12楼
因为在开发过程中,您总是希望重新创建数据库,您可以在lib / tasks文件夹中定义rake任务。
namespace :db dotask :all => [:environment, :drop, :create, :migrate] doend
end
在终端你会跑
rake db:all
它将重建您的数据库
#13楼
我认为运行此命令的最佳方法是:
**rake db:reset** it does db:drop, db:setuprake db:setup does db:create, db:schema:load, db:seed
#14楼
根据您的需要,您可以使用......
rake db:create
...从config/database.yml
从头开始构建config/database.yml
,或者......
rake db:schema:load
...从schema.rb
文件中从头开始构建数据库。
#15楼
我在终端使用以下一个班轮。
$ rake db:drop && rake db:create && rake db:migrate && rake db:schema:dump && rake db:test:prepare
我将它作为shell别名并将其命名为remigrate
到现在为止,您可以轻松地“链接”Rails任务:
$ rake db:drop db:create db:migrate db:schema:dump db:test:prepare # db:test:prepare no longer available since Rails 4.1.0.rc1+
#16楼
我知道有两种方法可以做到这一点:
这将重置您的数据库并使用all重新加载当前架构:
rake db:reset db:migrate
这将破坏您的数据库,然后创建它,然后迁移您当前的模式:
rake db:drop db:create db:migrate
两种情况下都会丢失所有数据。
#17楼
您可以使用db:reset
- 用于运行db:drop和db:setup或db:migrate:reset
- 运行db:drop,db:create和db:migrate。
依赖于你想要使用exists schema.rb
#18楼
只需你可以跑
rake db:setup
如果您使用某些数据创建种子文件,它将删除数据库,创建新数据库并从种子填充数据库。
#19楼
3个选项,结果相同:
1.所有步骤:
$ rake db:drop # deletes the database for the current env$ rake db:create # creates the database for the current env$ rake db:schema:load # loads the schema already generated from schema.rb / erases data$ rake db:seed # seed with initial data
2.重置:
$ rake db:reset # drop / schema:load / seed
3.迁移:重置:
$ rake db:migrate:reset # drop / create / migrate$ rake db:seed
笔记:
- 如果使用schema:load比执行所有迁移更快,但结果相同。
- 所有数据都将丢失。
- 您可以在一行中运行多个耙子。
- 适用于导轨3。
清除或重新创建Ruby on Rails数据库相关推荐
- Ruby on Rails的下载及安装以及开发环境的搭建
要基于ruby开发应用程序,我们必须安装ruby.gem.rails.mongrel. 第一,到官方网站上下载最新的Ruby One-Click Installer版本(已经自带了RubyGems,一 ...
- Ruby on Rails已死?GitLab:我还在用呢!
整理 | 彭慧中 责编 | 屠敏 出品 | CSDN(ID:CSDNnews) Ruby语言曾在2013至2015年期间非常流行,但随后流行度下降.早在3年前就在业界传出过**"Ruby及R ...
- Ruby on Rails,创建开发用的MYSQL数据库
在<Ruby on Rails,使用关系数据库简介>中我们简要浏览了一下关系数据库的最基本概念,这里我们动手创建一个Rails项目可以使用的数据库.Rails可以与DB2.MySQL.Or ...
- Ruby on Rails,创建和执行migrations迁移文件
在<Ruby on Rails,rake工具使用和数据库migrations迁移的概念>中,我们知道Rails中进行数据库迁移操作的基本概念和重要性.现在着手进行一个简单的数据库迁移实践吧 ...
- 如何在Ruby on Rails迁移中重命名数据库列?
我错误地将列命名为hased_password而不是hashed_password . 如何使用迁移重命名此列来更新数据库架构? #1楼 如果当前数据对您不重要,您可以使用以下方法删除原始迁移: ra ...
- Ruby on Rails,创建模型,附赠模型与表名不一致时的解决方法
在前文<Ruby on Rails,创建和执行migrations迁移文件>中我们提到过创建模型的事情,我们创建模型的同时生成迁移文件.那时候我们关注的是迁移文件,现在我们把目光投向模型这 ...
- 迁移数据库的介绍和使用方式[Ruby on Rails] [SQL]
迁移数据库的介绍和使用方式[Ruby on Rails] [SQL] 创作不易,麻烦点个赞再接着看,谢谢 1迁移概述 迁移是一种以一致的方式随时间改变数据库模式的方便方法.它们使用Ruby DSL,因 ...
- ruby on rails_最终的中级Ruby on Rails教程:让我们创建一个完整的应用程序!
ruby on rails 由Domantas G (By Domantas G) There are plenty tutorials online which show how to create ...
- [ruby on rails] 跟我学之(7)创建数据
通过form来创建数据,本章节将会涉及内容:创建form,用户重导向,渲染views 和 flash消息. 1. views初步 编辑 app/views/posts/index.html.erb这个 ...
最新文章
- 解决minikube启动时若干问题
- pjax 历史管理 jQuery.History.js
- MySQL添加服务、设置密码、修改密码
- 获取 input 单选框和多选框的值
- 微信小程序websocket连接服务器(接收信息)
- EXCEL小技巧:如何统计非空单元格
- 较为周全的Asp.net提交验证方案 (下)
- 小汤学编程之JavaScript学习day04——自定义对象、原型与原型链、BOM
- php socket 实现ftp,用socket实现FTP教程
- 公开课 之 心蓝 计算器 (课堂笔记)
- java中的diss可以做标识符吗_因为命名被diss无数次。简单聊聊编程最头疼的事情之一:命名...
- java 鼠标动眼睛动_js动画_看着鼠标移动的眼球_眼睛_跟着随鼠标移动
- 小记安装ElasticSearch遇到的小坑
- linux下内存释放问题
- 【工具推荐】免费的思维导图软件——Blumind
- C语言实现安全性极高的游戏存档并读档
- revit二次开发--异形柱翻模
- linux中安装openoffice,及解决转pdf时中文乱码或者中文不显示问题【离线】
- 二十四、从句_比较让步目的结果状语从句
- 欧洲核子研究中心公布强子对撞机事故初步分析