私はレールの宝石なしで別のパッケージ(ActiveRecord、ActiveSupport)で作業することによってRailsを学ぼうとしています。ActiveRecordの移行プログラムのバージョン管理はどのように機能しますか?
私は3つのクラスを持つデータベースを作成する方法を考え出すことはできません。
require 'rubygems'
require 'activerecord'
require 'yaml'
task :default => :migrate
desc "Migrate the database through scripts in db/migrate. Target specific version with VERSION=x"
task :migrate => :environment do
ActiveRecord::Migrator.migrate('db/migrate', ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
end
task :environment do
ActiveRecord::Base.establish_connection(YAML::load(File.open('database.yml')))
ActiveRecord::Base.logger = Logger.new(File.open('database.log', 'a'))
end
そして、私は三つのファイルがあります: はここに私のrakefileだ私は過去に正常に実行されてい
001_create_appearances.rb 001_create_movies.rb 001_create_actors.rb
を、それぞれがちょうど/ ActiveRecordは::移行から継承し、するself.upを行います自己ダウン。
ただし、rakeを実行すると「複数の移行でバージョン番号1が返されます」という問題があります。すべての移行を001_create_database.rbのような1つのファイルにパックする必要がありますか?
これらのバージョンの仕組みを説明するマニュアルがありますか?
migrator.rbのソースを読み込もうとしましたが、どこにup_without_benchmarks/down_without_benchmarksがあるのかわかりませんでした。