Rails 有没有办法可以将目前的数据结构导出成一个 Migration 文件

huacnlee · 2012年08月13日 · 最后由 pishilong 回复于 2014年11月03日 · 4483 次阅读

项目才初期开发(还为上线)的时候,数据结构会时长有很多的变化,其中有可能来回删除了某个表,这个时候一次一次的 Migration 文件越来越杂了

但是,这个时候数据库里面的结构是正确清晰的,有没有办法可以直接将目前的数据结构导成一个大的 Migration 文件的方法,这样一来,我就可以直接清理掉之前杂乱的 Migration 文件。

我知道,其实可以直接 SQL 导出数据结构,然后用于安装的时候初始化数据库的,我只是想知道有没有可以导成 Migration 的方法,这样,这个文件我可以一直保留的,SQL 文件一直留在怪怪的...

直接将 schema.rb 改改?

rake db:schema:dump 的输出放进一个 migration 文件里如何

就是 rake db:schema:load

#2 楼 @leozwa rake db:schema:dump 没任何反映,这个会导出成一个 migration 文件么?

rake:schema:dump 会把你的数据库重新 dump 到 schema.rb 里... 我可能理解错你的需求了...

to @huacnlee 估计这得手动 或者是 自己定制一个脚本 schema 和一个迁移文件 代表的范围就不一样嘛 http://stackoverflow.com/questions/5224827/generate-a-migration-file-from-schema-rb 不过应该对你没什么帮助

导出一个 migration 有什么好处吗?初始化数据库直接 load schema.rb 不行吗?

他的意思是 sql2migration。 #9 楼 @ashchan

哎,我也有这样的需求呃

楼上有些同学没理解楼主的意思阿 开发阶段 schema 经常变,于就是造成了很多 migration 文件,然后这也是没有必要的,因为没有数据库需要做这样的迁移。

同建议新建 migration,将 schema 的内容拷进去。

#9 楼 @ashchan +1,现在就是这样做,每个里程碑开始就来一次

#9 楼 @ashchan 我试试,原来可以这样搞啊

#10 楼 @bony 我要的不是 SQL 转成 Migration,就 #9 楼 @ashchan 的方法就是我想要的

同建议新建 migration,将 schema 的内容拷进去。

然后再怎么迁移 schema 文件呢?

#9 楼 @ashchan rebase migration...

请问 setup 是哪里呢?

#9 楼 @ashchan 重新执行 migrate,不是会冲突吗?table already exists.

需要 登录 后方可回复, 如果你还没有账号请 注册新账号