今天刷贴看到了这篇文章http://ruby-china.org/topics/16493,老大回复的很有意义,在这里备份一个
而要把现有的数据库纳入 Migration,一个简单方法:
- 创建一个空 Migration
rake g migration init
- 运行
rake db:schema:dump
- 把 2 生成的内容(db/schema.rb)剪切到 1 生成的 migration(db/migration/xxx_init.rb) 里面
然后楼主还会有疑问,直接用数据库命令创建表不好么,为什么要用 migration。如果有这样的疑问,那么就是没有管理过实际项目,或者没有进行过多人协作,不知道同步数据库结构会遇到什么问题。这时候有两种选择:
- 完全跟着 Rails 的方法走,然后体会到为什么说 Rails 生产效率高
- 完全不跟 Rails 的方法走,遇到一大堆问题,然后体会到为什么说 Rails 生产效率高
所以我觉得这个问题其实是 X-Y-Z 问题,最终的问题是:什么是 Migration,为什么需要 Migration。答案是:
- 多人协作
- 版本管理
- 上线之后的模式/数据迁移