如何在Rails中使用LEGACY数据库?

时间:2013-04-20 02:25:54

标签: ruby-on-rails legacy-database

我正在开发一个Rails网站,该网站介绍股票共同基金和ETF。我已经有了一个单独的Ruby脚本,每晚运行一次,并在Postgres数据库中填充这些共同基金和ETF的数据。

Rails第6章教程并不是我想要的。我正在尝试做的和Rails教程的第6章之间的区别是: 1.在我的Rails站点中,不需要创建数据库,因为它已经填充了。所以我认为我不需要使用“rails generate”或“rake db:migrate”。 (或者我错了吗?) 2.我的Rails站点只读取数据,不添加,删除或编辑数据。

1 个答案:

答案 0 :(得分:1)

您不必创建迁移。只需创建您的模型。如果数据库表与模型名称不匹配,则可以对旧版本的Rails使用set_table_name,对于较新版本使用self.table_name = 'table_name'。如果不对外键和主键使用Rails标准,则还必须指定它们。

例如:

# Assuming newer versions of Rails (3.2+, I believe)

class ETF < ActiveRecord::Base
  self.primary_key = 'legacy_id'
  self.table_name = 'legacy_etfs'
  has_many :closing_prices, foreign_key: 'legacy_etf_id'
end

class ClosingPrice < ActiveRecord::Base
  self.primary_key = 'legacy_id'
  self.table_name = 'legacy_closing_prices'
  belongs_to :etf, foreign_key: 'legacy_etf_id'
end