接触过Ruby On Rails(后面简称Rails)的知道,rails有一个数据库结构变更的rake命令,它就是rake db:migrate,我们来根据Rails guide看看它是怎么使用的。
在介绍db:migrate之前,我们先了解一下什么是migration,它的中文意思是“移民”,动词的意思就是“迁移”,很明显是数据库的变迁,在rails项目中,数据库变迁的文件存放在db/migrate文件夹中:
至于这些文件的内容,以及migration文件怎么编写,这里就不多说了,我主要想说一下,生成了这些文件之后,db:migrate命令怎么用。
首先说下怎么生成migration文件,也就是怎么生成一个数据库变迁。
我们看看文件的命名,都是一组数字加一些英文名,数字代表什么意思呢?这些数字就是数据库变迁版本,这些数字是存放在schema_migrations这个表里。
如果我们执行了某个数据库变迁,那么这个变迁版本(version)就在这个表里,insert一条数据。
mysql> select * from schema_migrations
-> ;
+----------------+
| version |
+----------------+
| 20150413134401 |
| 20150426140418 |
| 20150427155752 |
| 20150428132403 |
| 20150504135547 |
| 20150505130504 |
| 20150617130600 |
+----------------+
7 rows in set (0.00 sec)
好了,migration就简单介绍到这,我们细细讲一些一些常用的用法:
rake db:migrate
rake db:rollback
rake db:migrate:up/down VERSION=XXXXXXXXXXXXXX
rake db:migrate:status