title: “yaml_db RailsのDBをコマンドひとつでYAML形式でダンプ/ロードできるRubyGem”
category: Rails rubygem Ruby

🗻 tags: [Rails RubyGem Ruby]

Where?RakeコマンドでRailsのDBをYAML形式でダンプ(dump)/ロード(load)することができるgem yaml_dbの紹介です。ステージング環境のDBをダンプして本番環境と置き換える場合や、HerokuへのDBデータのアップロードなどに使えます。

ludicast/yaml_db | GitHub


🐮 yaml_dbの導入

いつ戻おりGemfileに次の内容を追加して、bundle installを実行。

# DBをYAML形式でダンプ/ロード
gem 'yaml_db'

🏀 DBのダンプとロード

gemがインストールされると次のRakeが追加されます。

# db/data.yamlを生成
rake db:data:dump

# db/日付フォルダ/tablename.yamlを生成
rake db:data:dump_dir

# db/data.yamlを読み込み
rake db:data:load

# db/日付フォルダ/tablename.yamlをDBに読み込み
rake db:data:load_dir

公式ページに詳しい説明があります。よかったらご覧になってください。

ludicast/yaml_db | GitHub

🎳 補足: Capistranoとの連携

Capistranoを使ってダンプしたDBのyamlデータロードをデプロイプロセスに組込みたい場合はconfig/deploy.rbに以下を追加。

namespace :deploy do # namespaceは任意
desc "Load the seed data from db/data.yml"
task :dump_yml_load do
run "cd #{current_path} && RAILS_ENV=production bundle exec rake db:load"
end
end
after :deploy, "deploy:dump_yml_load"

もし、Deployプロセスを自動化するGem Capistranoについて興味がある方は、「Rals3.2.9で始める Git連携Capistranoによる自動デプロイ」をご覧になってみてください。

🚕 補足: DBをロードした時に日本語が文字化けした場合

僕の環境では発生しませんでしたが、もしDBをロードした時に日本語の文字化けが発生した場合はこちらのリンクが参考になるかと思います。

[RoR] yaml_db で生成したYAMLファイルの日本語が文字化けする

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍