ActiveRecord :: Migration - 引用另一个模式中的表

时间:2011-09-27 19:49:29

标签: ruby activerecord migration schema

我正在使用Ruby和PostgreSQL并创建了3种不同的数据库模式:计费(用于计费相关数据),客户(用于客户相关数据)和edocs(用于电子文档相关数据)。 我没有使用Rails,所以我有一个像这样的独立迁移代码:

#migrate.rb

if ARGV[0] =~ /VERSION=\d+/
  version = ARGV[0].split('=')[1].to_i
else
  version = nil
end

ActiveRecord::Base.default_timezone           = :utc
@logger                                       = Logger.new $stderr
ActiveRecord::Base.logger                     = @logger
ActiveSupport::LogSubscriber.colorize_logging = false
@config                                       =     YAML.load_file(File.join(File.dirname(__FILE__), 'database.yml'))

ActiveRecord::Base.establish_connection(@config["edocs"])
ActiveRecord::Migrator.migrate(".", version)

我已经意识到我可能必须创建一个不同的目录来包含不同模式的迁移,并更改每个migrate.rb的连接信息。

但是我不确定我将如何使表引用另一个模式中的另一个表。 例如:

class CreateBillingEventsTable < ActiveRecord::Migration

 def self.up
   create_table :billing_events do |t|
     t.references :customer, :null => false
     t.references :service_type, :null => false
     t.timestamps
   end
   change_table :billing_events do |t|
     t.index [:customer_id, :created_at]
   end
 end

 def self.down
   remove_index :billing_events, :column => [:customer_id, :created_at]
   drop_table :billing_events
 end

end

在上面的示例中,“customer”和“billing_events”处于不同的模式中。 我该怎么编码呢?

感谢。

0 个答案:

没有答案