Gem 大家都用什么方式导入项目所需的基本数据?

newbie · 2014年07月09日 · 最后由 ken 回复于 2014年09月28日 · 2692 次阅读

现在团队的做法是,用 Excel 编辑大量程序初期所需基础数据,然后写宏转换成 SQL 的 insert 语句并生成相关文件,再用还原的方式导入到数据库中。 有没有更好的办法?

seed_fu 这个 gem 可以导入,但编辑起数据还不是太方便。

seed_fu 支持简化语法,还算可以吧:

User.seed(:id,
  { :id => 1, :login => "jon",   :email => "[email protected]",   :name => "Jon"   },
  { :id => 2, :login => "emily", :email => "[email protected]", :name => "Emily" }
)

如果还嫌麻烦,seed_fu 也支持 cvs 导入 https://github.com/mbleigh/seed-fu/blob/master/lib/seed-fu/writer.rb

用 Excel 写宏那 Ruby 白学了。

Excel 存为 CSV 然后导入不就行了么。

其实编辑最好是用 yml, 比 csv 简单且直观。

数据量小的可以写到 db/seeds.rb 数据量大的可以写一个 rake 任务来读 excel,然后保存到数据库中

我一般是用 yml 或者 csv 来存,然后在 seed 里面读

#1 楼 @winnie 谢谢你提供的链接 也谢谢其他人的回答,果然做法有问题。

我用 fixture,好处是 test 和 development 的数据可以用同一套,而且 test 跑的速度很快,缺点是维护起来稍麻烦。

rake db:fixtures:load FIXTURES_PATH='spec/fixtures' RAILS_ENV=development

#7 楼 @ericguo 这样是维护麻烦,比较大的项目,比较多的基础数据就不是好办法了。

用 rake 来维护,脚本里面可以直接读取导入 csv,xml,json,yml 什么的...顺便带点逻辑处理和错误数据修复。

听过叫做 yaml_db 的 gem,不过貌似不维护了

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