用户登录

在这个 migration 的 change 方法里,我们用了 create_table 方法 .. rollback 它的时候, rails 知道应该怎么样恢复这个 migraiton 对数据库的操作 .. 你会发现,它执行了 drop_table ... create_table 可以创建表, drop_table 是删除表 ..

我们也可以自己去定义 migrate 的时候执行的动作,还有对应的 rollback 的时候要执行的动作。

创建一个 migraiton ... 名字是 ReversibleDemo .. 再找到这个 migration ... 在它的 change 方法里,用一个 reversible .. 给它一个代码块 ... 添加一个参数名字是 dir ... 表示 direction ,方向 ..

然后用一下 dir 的 up 方法 .. 也给它一个代码块 .. 在这个代码块里,就是 migrate 的时候要做的事情 .. 这时我们简单的用一个 say ,输出一个 up !

再用一下 dir 的 down 方法 ... rollback 这个 migration 的时候会执行在它里面定义的动作 ... 同样用一个 say ... 输出 down !

然后去运行一下 ... rails db:migrate ... 会提示正在 migrating ReversibleDemo 这个 migration ...

这里会输出一个 up ! ...

再 rollback 一下最近做的这个 migration ... 输出的是 down !

reversible:自定义恢复《 Rails:数据库 Migration 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点