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

使用Rails 3.2.2ruby 1.9.3dev和mysql

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

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

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

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

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

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

注意:我们使用ID而不是id并且许多都有许多foreign_key关系。

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

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

 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 

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

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