2014-11-05 79 views
0

我用yaml_db寶石創建我的MySQL轉儲文件數據庫SQLite的使用 然而,這是一個完整的數據庫導出和我想要爲特定表導出數據。如何數據庫(轉儲文件)的紅寶石導出到sqllite從MySQL數據庫在軌道上

command = rake db:data:dump 

另一種方式使用

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

這些命令對我的工作,但他們不產生適當的SQLite的格式。我認爲生成的格式是SQL

如何將MySQL轉儲轉換爲SqLite。

+0

你如何看待使用bash? 例如: 將mysql轉儲sql文件轉換爲可導入sqlite3格式的腳本db https://gist.github.com/esperlu/943776 – brabertaser19 2014-11-05 08:42:52

回答

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寶石其他應用程序加載只選定表。如果您在目標應用中指定了下載文件db/data.yml,則可以使用rake db:data:load加載。