Ich versuche Rails zu lernen, indem ich mit verschiedenen Paketen (ActiveRecord, ActiveSupport) ohne Rails gem. Arbeite.Wie funktioniert die Versionierung im Migrator von ActiveRecord?
Ich kann jedoch nicht herausfinden, wie man eine Datenbank mit drei Klassen erstellt. Hier ist mein Rakefile:
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
Und ich habe drei Dateien:
001_create_appearances.rb 001_create_movies.rb 001_create_actors.rb
, die ich alle in der Vergangenheit erfolgreich laufen, jeder erbt nur von Active :: Migration und tut self.up/Selbst.down.
Ich habe jedoch, Problem, dass, wenn ich Rake laufen, gibt es "Mehrere Migrationen haben die Versionsnummer 1". Sollte ich alle Migrationen in eine Datei packen, wie zum Beispiel 001_create_database.rb?
Gibt es irgendwo ein Handbuch, das beschreibt, wie diese Versionen funktionieren?
Ich versuchte Quellcode von migrator.rb zu lesen, konnte aber nicht finden, wo sich up_without_benchmarks/down_without_benchmarks befand.