【发布时间】:2010-10-17 00:22:12
【问题描述】:
我正在尝试通过在没有 rails gem 的情况下使用不同的包(ActiveRecord、ActiveSupport)来学习 Rails。
不过,我不知道如何创建一个包含三个类的数据库。 这是我的 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
我有三个文件:
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 的位置。
【问题讨论】:
标签: ruby activerecord migration