我使用yaml_db
gem创建了 mySQL 数据库的转储文件,用于 SQLite
但是这是一个完整的数据库导出,我想导出特定表的数据。
command = rake db:data:dump
使用的另一种方式
command:-mysqldump -uroot db_name table_name > db/database.yml
这些命令对我有用,但它们不能生成正确的SQLite格式。我认为生成的格式是SQL
如何将MySQL转储转换为SqLite。
答案 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
加载。