yii migrations的意义[翻译] [ 未指定版本 ]
我很早就知道yii有个叫migrations的东西,但一直不觉得有什么意义,今天看到这篇引文文章很好的说明了migrations的意义,我试着翻译一下:
首先,我们为什么需要migrations呢?
很久以来,PHP一直没有一种机制把项目最新的DB结构同时同步到不同的机器上.
很多时候我们是卸掉原来的DB结构再把最新的DB结构导进来.
如果某人修改了数据库结构,那么我们不得不把修改的SQL文件在所有不同的机器上跑一遍.而且这个修改者可能要一个一个得通知到所有人(实际情况可能要好点).
现在YII提供了一个管理我们DB结构的方法.我们不需要浪费时间和精力来维护我们的DB结构了.
以下是在开发过程中使用migrations的步骤:
1.Tim创建了一个新的migration(比如创建了一个新的表)
2.Tim把这个migration通过代码管理工具(SVN,GIT等)提交到代码管理服务器.
3.Doug update了他的代码,拿到了这个migration.
4.Doug(无脑地)使用了这个migration,然后他本地的数据库结构就和其他人的保持一致了.
使用migration
% cd WebRoot/webappname
% php protected/yiic migrate create <name>
# Migration command list
% php protected/yiic migrate # 应用所有的新的migration
% php protected/yiic up [step] # 应用一个或多个migration
% php protected/yiic down [step] # 回滚一个或多个已经应用的migration
原文地址: http://www.cnblogs.com/mztest/archive/2012/10/15/2724367.html
文章比较老,使用方法可能已失效,实际使用时请参考教程.
yiissy001
注册时间:2013-12-04
最后登录:2017-09-25
在线时长:24小时55分
最后登录:2017-09-25
在线时长:24小时55分
- 粉丝7
- 金钱2529
- 威望90
- 积分3669
共 3 条评论
突然顿悟了
这样确实挺方便的。
现在项目时间一长, migrations 文件就特别多。
是不是每个表都有一个这样的文件 ,如果有某个人修改了数据表,把svn上面的文件down下来就可以吗
可以把migrations想象成数据库结构的同步工具,migrations里保存的是对数据库结构的操作(当然migrations也可以做增删改查,但主要用途不是这个),目的是同步开发机上的DB结构和方便部署
仅仅这个作用的话,直接到处sql不行吗?