rails 4 で任意のテーブルのみ YAML で dump する

rails3 で任意のテーブルのみ dump できる fm_yaml_db(0.2.3) は、rails4 に対応していないのか動きません。

rails4 に対応した yaml_db を使います。

gem 'yaml_db', github: 'jetthoughts/yaml_db', branch: 'rails4'

dump するテーブルを返すメソッドをオーバーライド

config/initialize/dump_tables.rb

module SerializationHelper
  class Dump
    def self.tables
      %w(tables1 tables2 tables3)
    end
  end
end

もしくは以下のようなメソッドを用意して

def override_dump_tables(*tables)
  SerializationHelper::Dump.define_singleton_method "tables" do
    tables
  end
end

適宜書き換えるのも良いかもしれません。

namespace "db:data:dump" do
  task :set => :environment do
    override_dump_tables("tables1", "tables2", "tables3")
    Rake::Task["db:data:dump"].invoke
  end
end