Rails を使用しない ActiveRecord + Migrate
メモ代わり。
ActiveRecord
require 'rubygems' require 'active_record' ActiveRecord::Base.establish_connection( :adapter => 'postgresql', :host => 'localhost', :username => 'foo', :database => 'baz', :encoding => 'utf8' ) class User < ActiveRecord::Base end User.find(:all).each do |u| p u end
Migrate
Rakefile
ほんとは設定ファイルわけたほうがいいんだけどね
require 'rubygems' require 'active_record' require 'logger' ActiveRecord::Base.establish_connection( :adapter => 'postgresql', :host => 'localhost', :username => 'foo', :database => 'baz', :encoding => 'utf8' ) # 重要 ActiveRecord::Base.logger = Logger.new(STDOUT) task :migrate do # 'migrate' は Rakefile から見た 001_xxx.rb 等がおいてあるディレクトリを相対指定 ActiveRecord::Migrator.migrate('migrate', ENV["VERSION"] ? ENV["VERSION"].to_i : nil) end
Migrate file (001_xxx.rb)
# クラス名はファイル名の xxx と同等にする (これでハマった) # 001_initialize_db.rb → InitializeDB etc. class Initialize < ActiveRecord::Migration def self.up end def self.down end end
Usage
rake migrate
rake migrate VERSION=0