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

command = rake db:data:dump


另一种使用方式

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


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

如何将MySQL转储转换为SqLite。

最佳答案

由于yaml_db gem在数据库级别工作,因此它具有一些仅允许下载一张表的功能。

我写了一个补丁,添加了仅下载一个表的方法。只需将此代码放在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进行加载。

10-06 12:49
查看更多