Rails 怎么把 activerecord 的 production 数据导出到文件,再导入到 development 里

cqpx · 2011年11月08日 · 最后由 ery 回复于 2012年02月08日 · 4262 次阅读

最好是可以在 rails console 里执行的啦

最好是类似这样的 RAILS_ENV=production rails c dump User.all to usr.db exit rails c load usr.db User

现在的情况是我的 production 表里有很多数据了, 我想在开发的时候也用这些数据, 不知道用什么办法导过来比较好

dbms 用的 postgres,用 postgres 命令也可以

thanks cqpx

我觉得走 psql 最简单了,直接通过命令做一个 production 数据库的 clone 就可以了吧?

CREATE DATABASE new_database WITH TEMPLATE original_database;

mysqldump 成 sql 文件,手动修改数据库名次,然后到 mysql shell 里面 source 那个文件

#1 楼 @lgn21st 谢谢大哥的提醒,原来 TEMPLATE 还有这种用法。注意力从 rails console 转移到 psql 之后发现了 COPY TO 和 COPY FROM 命令,可以将一个表的数据写到文件里

#2 楼 @huacnlee 早上在 rubyconf china 的发言人里看到大哥的名字了,可惜我在重庆。。 以前就是用 dump 的办法,这样会把整个数据库都 dump 出来,但我只需要其中一个表的数据。怕下载次数太多 vps 超流量。。

我现在备份的办法就是 dump 到文件,然后 7zip 压缩再下到我自己电脑上,这样的问题是压缩时占 cpu,下一次就几百兆占流量。大家备份数据采用的什么办法?

最原始的办法就最好

mysqldump ... > xx.txt mysql ... < xx.txt

搭个车,我曾想如果 db 中的的数据,能够直接转换成 fixtrues 该多好,但我一直没有深入研究,理论上,通过 activerecord 读取,然后输出 yml,应该可行。

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