Rails 有没有好的数据迁移方案?

Peter · 2014年06月23日 · 最后由 saiga 回复于 2014年06月23日 · 2198 次阅读

在开发机 (Mysql) 上有些表里的数据直接可以用在生产机 (Heroku Postgresql) 上,但把数据导出到 seed.rb 的方法不是对所有的 Model 都有效。

比如说如果用这个 Gem: https://github.com/rroblak/seed_dump 产生这样的数据:

Product.create!([
  {category_id: 1, description: "Long Sleeve Shirt", name: "Long Sleeve Shirt"},
  {category_id: 3, description: "Plain White Tee Shirt", name: "Plain T-Shirt"}
])
User.create!([
  {id: 1, password: "123456", username: "test_1"},
  {id: 2, password: "234567", username: "test_2"}
])

这种方法一般来说是够用的,但有的 Model 不是所有的字段都可用的, 比如说这个 Gem https://github.com/collectiveidea/awesome_nested_set

其中的 lft, rgt 字段是 Gem 来管理的,不允许直接赋值。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

简单来说我的问题: 在 seed.rb 里面的操作基本上都是封装 (类方法) 了,有没有原始的数据迁移方案?比如说上传个 SQL 文件,直接 rake 在生产机上搞定?

不要通过 ar 跑迁移..在本地做好 mysql2pg 转换,再从 pg 导出 sql 文件上传到服务器 可以试试 pgloader 来迁移,好像可以导入 csv 甚至直接从 mysql 拷数据

#2 楼 @saiga 谢谢!我试一下

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