如何从rails中的ruby中的mysql数据库将数据库(转储文件)导出到sqlite中

时间:2014-11-05 07:17:46

标签: mysql ruby-on-rails ruby sqlite

我使用yaml_db gem创建了 mySQL 数据库的转储文件,用于 SQLite 但是这是一个完整的数据库导出,我想导出特定表的数据。

command = rake db:data:dump

使用的另一种方式

command:-mysqldump -uroot db_name table_name > db/database.yml

这些命令对我有用,但它们不能生成正确的SQLite格式。我认为生成的格式是SQL

如何将MySQL转储转换为SqLite。

1 个答案:

答案 0 :(得分:0)

由于yaml_db gem在db级别工作,它有一些函数只允许下载一个表。

我写了一个补丁,添加了一个只下载一个表的方法。只需将此代码放在config/initializers/yaml_db_extras.rb

即可
module YamlDb
  class Dump < SerializationHelper::Dump
    def self.dump_table_to_file(filename, table)
      file = File.new("#{filename}.yml", 'w')
      dump_table_columns(file, table)
      dump_table_records(file, table)
    end
  end
end

并使用如下:YamlDb::Dump.dump_table_to_file('db/dump_users','users'),然后您可以使用转储文件仅加载使用yaml_db gem的其他应用程序中的选定表。如果您在目标应用中命名下载文件db/data.yml,则可以使用rake db:data:load加载。