我使用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
进行加载。