Rails 里的 Migration,可以让我们把对应用的数据库的操作使用代码的形式保存下来 ... 比如你可以创建 Migration ,去在应用的数据库里添加一个数据表 .. 你可以定义数据表里的栏 .. 你可以继续创建 Migration 去添加其它的表,或者为已经存在的表添加新的栏,去修改栏的配置等等 ...
使用命令执行一下这些 Migration,就可以在数据库上应用这些在 Migration 里定义的对数据库的操作了 .. Rails 会帮我们记录已经执行过的 Migration ... 你可以把每个 Migration 看成是数据库的一版本 ...
如果对最近做的几次 Migration 不满意,可以 Rollback,回滚一下 ... 这样会把数据库的状态恢复成没做这些 Migration 之前的样子 ...
在 Migration 里面定义的这些对数据库的操作,使用的是 Rails 提供给我们的一些方法 .. 它们比直接使用 SQL 操作数据库友好的多 .. 而且很多方法都是可恢复的 ..
比如创建一个数据表,可以使用 create_table 方法,在 Migration 里使用一下这个方法去创建数据表 ...
如果回滚这个 Migration 的话,Rails 会自动删除掉使用 create_table 方法创建的这个数据表 ..
或者在 Migration 里面,我们也可以使用 reversible 方法,手工的去定义在 migrate 还有 rollback 的时候要做的事情。