Я пытаюсь изучить Rails, работая с различными пакетами (ActiveRecord, ActiveSupport) без гема rails.
Хотя я не могу понять, как создать базу данных с тремя классами.
Вот мой грабли:
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
И у меня есть три файла:
001_create_appearances.rb 001_create_movies.rb 001_create_actors.rb
Все, что я успешно выполнил в прошлом, каждый просто наследует от ActiveRecord :: Migration и выполняет self.up / self.down.
У меня, однако, проблема в том, что когда я запускаю rake, он возвращает «Несколько миграций имеют номер версии 1». Должен ли я упаковать все миграции в один файл, например, 001_create_database.rb?
Есть ли где-нибудь руководство, описывающее, как работают эти версии?
Я попытался прочитать источник migrator.rb, но не смог найти, где находятся up_without_benchmarks / down_without_benchmarks.