使用Rails 3从现有表生成模型

时间:2012-03-29 18:43:22

标签: ruby database ruby-on-rails-3 model

使用Rails 3.2.2ruby 1.9.3dev以及mysql

我是ruby和rails的新手。我们有一个包含几百个表的现有数据库。我们想尝试使用rails来查看它是否会从PHP& ZendFramework。

将数据迁移到另一个数据库不是我们的选择,因为我们当前有几个其他应用程序正在使用此数据库。我们希望将rails项目“附加”到现有数据库。

我正在努力的部分是从我们现有的数据库中生成所有模型。

我看到一些较旧的帖子谈论了一些自动化技术,包括Magic Model Generator。虽然其他人谈到没有办法做到这一点,或者你只是手动创建它们。

我没有成功使用Magic Model Generator生成模型(可能只有rails 2?)

很久以前,当我们切换到ZendFramework时,我编写了一个快速脚本来分析数据库并为我们生成所有模型文件。这似乎是一种常见的情况。

注意:我们使用ID代替id,而且很多人都有foreign_key个关系。

所以我想问一下社区处理这个问题的最佳方法/方法是什么?

2 个答案:

答案 0 :(得分:2)

这并不困难,只需要更多配置。这是模型的基本模板:

class YourIdealModelName < ActiveRecord::Base
  self.table_name = `actual_table_name`
  self.primary_key = `ID`

  belongs_to :other_ideal_model, 
    :foreign_key => 'foreign_key_on_other_table'

  has_many :some_other_ideal_models, 
    :foreign_key => 'foreign_key_on_this_table', 
    :primary_key => 'primary_key_on_other_table'
end

答案 1 :(得分:0)

我不是专家,甚至研究过这个问题。 在我的脑海中没有考虑太多的第一个解决方案是按照rails方式进行模型和迁移,因此您没有任何问题,例如密钥和外键命名。如果您已经有一些数据,则应将其迁移到rails db。

这样做的一个原因是模型不仅是数据访问者,还包含业务逻辑