Rails学习笔记(2) ————migration(数据库迁移)
来源:互联网 发布:黑客网络 生涯起点 编辑:程序博客网 时间:2024/06/06 00:44
使用rails的migration之前先配置以下几步
一:
1.在config/database.yml配置mysql数据库
#这里的意思是这是开发模式下的数据库配置,可以选择的是:development, test, productiondevelopment: # 表示数据库的驱动 adapter: mysql2 # 数据库的名字 database: db_name # 数据库的用户名 username: root # 表示密码 password: admin # 数据库的ip地址 host: localhost
2.修改Gemfile
这里修改之前先把默认的sqllite删掉,不加'0.3.17'会默认生成最高版本,这里不需要,按下面的配置即可。
gem 'mysql2', '0.3.17'
3.执行命令$ bundle install
这里相当于java的maven,可以为项目添加所需的gem
4.创建数据库
$ bundle exec rake db:create
这是,你会发现数据库已经创建好了
---------------------------------------------------------------------------------------------- (人工分割线)
二:
5.执行命令$ rails generate migration CreateTableName来创建migrate文件
例如:$ rails g migration CreateStudents(migration可以省略成g)
我们会发现在项目的db/migrate会多出一个文件,打开,编辑。
#db/migrate/20161202100861_create_students.rbclass CreateStudents < ActiveRecord::Migration def up create_table :students do |t| t.string :name t.timestamps end end def down drop_table :students endend
解释:
up的意思是从过去,往未来的时间方向上发展down的意思是在时间上倒退
因为它可以移过来,再移回去.在不断的up/down中,数据库实现了迁移,这就是这个名字的由来,每个文件都有时间戳。
6.执行命令$ rake db:migrate
这样查看数据库就会发现学生表已经创建成功了,而且里面会有name、create_up、update_up这三个列
7.想要回滚执行命令$ rake db:rollback
一般在商业项目中很少用rollback,比如你修改表结构,一般会执行$ rake dbLmigrate
8.up down和change的区别
如果你用rails 4.x 来创建的话,得到的migration ,一般没有up, down 方法。因为,rails 非常智能,能自动的把up和down方法合并成change这个方法。
如果up方法中,是create_table, 那么,rails就会自动判断出,在down 方法中,就用drop_table。但是因为是项目中,我们一般也不会删除表,所以
用的多的是change,不过有时候rails无法进行判断,还是推荐用up down方法。
daydayup : )
- Rails学习笔记(2) ————migration(数据库迁移)
- rails 中的迁移Migration
- process migration(进程迁移) 学习笔记
- migration数据库迁移
- Flask学习——数据库迁移
- Laravel学习笔记(五)数据库 数据库迁移案例2——创建数据结构,数据表,修改数据结构
- [管理篇4]OpenStack虚拟机动态迁移——block-migration
- DB Migration 数据库版本管理工具 学习笔记
- 数据库迁移工具DataX-Migration
- Rails 数据库学习笔记
- Sqoop学习笔记——关系数据库与hdfs间数据迁移
- Ruby On Rails学习笔记(1)——安装Instant Rails
- Ruby On Rails学习笔记(3)——Rails程序由0到1
- Rails学习笔记(1) ————Router 路由
- Rails学习笔记(4) ————Model:CRUD
- Rails 数据库迁移(Migrations)
- Rails数据库迁移
- rails migration
- 中文写入数据库显示为问号?
- AlarmManager实现定时器、闹钟
- vi的安装、配置及常用命令
- 人在当时处境中,像旋涡中的一片落叶,身不由己
- Python 排序
- Rails学习笔记(2) ————migration(数据库迁移)
- Android 密钥库系统
- Java NIO —— TCP套接字(ServerSocketChannel & SocketChannel)
- Spring注解方式注入解析
- C# 使用 Abot 实现 爬虫 抓取网页信息 源码下载
- unity判断其它物体相对于自身方位以及角度
- blender源码编译——(win10,VS2015环境)
- Spring Boot 常用注解
- webservice