【问题标题】:Best way to Import/Export data from a DB while bypassing Active Record Validation绕过活动记录验证从数据库导入/导出数据的最佳方式
【发布时间】:2013-04-11 16:11:46
【问题描述】:

我有一个大型控制台查询,它调用 130 个对象及其所有关联对象,总共大约 2,000 个项目。

我想以某种方式导出此查询的原始 SQL 数据,以便我可以将该原始数据注入另一个数据库。

是否有一个宝石或策略来完成这样的事情?

【问题讨论】:

  • Hos 关于转储数据库并恢复?
  • 也许您可以使用#to_sql 方法获取原始查询并保存
  • 整个 db 为 6.8 GB。这将是不必要的。我只需要某些记录。 to_sql 也不返回数组的 sql。

标签: mysql ruby-on-rails import export


【解决方案1】:

如果您不需要活动记录验证,我建议只使用 mysql:

如果您的查询很简单(或者可以分解为多个简单查询),您可以使用--where option of mysqldump 导出您想要的数据,然后使用标准 mysql 客户端重新导入:

mysqldump db_name --where "id IN (1, 3, 5)" > export.sql
mysql new_db < export.sql

我认为mysqldump不支持join查询,所以如果你有更复杂的查询,你可以使用mysql的SELECT INTO OUTFILE查询将数据导出到csv,然后LOAD DATA INFILE导入。

【讨论】:

  • 还应该注意,默认的导出sql实际上会在注入之前删除你的表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-14
  • 2015-02-04
  • 2010-09-21
  • 1970-01-01
  • 2016-11-17
  • 2014-02-25
  • 2012-03-04
相关资源
最近更新 更多