railsのMigrationで「ルックアップテーブル、定義済みのユーザなど、本番環境にもロードしたいデータをロードするためのマイグレ」を作成する。 メモ
#{RAILS_ROOT}/db/migrate/001_create_system.rb
require "migration_helpers" class CreateSystem < ActiveRecord::Migration extend MigrationHelpers def self.up create_table :system, create_tbl_option do |t| t.column :cd, :string t.column :name, :string end add_index(:system, :cd, :unique => true ) end def self.down drop_table :system end end
#{RAILS_ROOT}/db/migrate/002_load_init_data.rb
require "migration_helpers" class LoadInitData < ActiveRecord::Migration extend MigrationHelpers def self.up down data_load("system") end def self.down # data_clear("system") end end
#{RAILS_ROOT}/lib/migration_helpers.rb
require 'active_record/fixtures' module MigrationHelpers def create_tbl_option options = { # :options => "ENGINE=InnoDB DEFAULT CHARSET=utf8", # mysql option :force => true } end def data_load(file) dir = "#{RAILS_ROOT}/db/migrate/init_data" Fixtures.create_fixtures(dir, file) end end
#{RAILS_ROOT}/db/migrate/init_data/system.yml
system_00001: id: 1 cd: test name: "テスト"