浏览 1575 次
锁定老帖子 主题:Rails中的Migrations(一)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-11-18
Rails中的DB Migration是通过db/migrate下的rb脚本来完成的。这些migrate的脚本可以通过手动来维护,但是推荐的方法应该让Rails自己来生成相应的rb文件。在Rails中有两种方式来生成:
rake db:migrate
Rails在数据库中会维护一张
表:schema_migrations。这张表中只有一个字段:version,里面存储的是db/migrate目录下的已经成功执行的
migrate的文件的UTC编号。当执行rake
db:migrate是,Rails会查看数据库中有没有schema_migrations这张表,如果没有就会建立这张表.然后会取出这张表中的所有
的记录,即UTC编号,与db/migrate目录下的文件进行比较.如果db/migrate目录下存在数据库中没有记录的migrate文件,就会按
照顺序进行执行,并在数据库中插入相应的记录.
执行某个特定的migrate文件
如果需要执行db/migrate目录下的某个特定的migrate文件,可以使用VERSION参数,例如rake db:migrate VERSION=20080601000010
如果使用VERSION执行某个特定的migrate文件时,Rasil会按照以下的顺序进行工作: 当指定的VERSION参数比schema_migrations表中存储的最大UTC还要大,则会直接执行制定VERSION的那个migrate文件.
当指定的VERSION参数比schema_migrations表中存储的某些记录小,情况则会有些不同.Rails会从数据库中找出那些UTC编号比制定VERSION大的那些记录,并按照UTC编号从大到小undo 这些migrate文件.
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |