使用带有新rails应用程序的旧数据库时出现问题

时间:2010-03-27 00:38:17

标签: ruby-on-rails activerecord legacy-database

在旧的rails应用程序中使用旧数据库时,常见问题/绊脚石/问题/缺点是什么?

我们必须决定使用旧数据库还是编写迁移脚本,以便按照rails约定将数据从旧数据库传输到新数据库。你会建议什么?

2 个答案:

答案 0 :(得分:2)

表命名让我有一段时间了。诀窍是在你的模型中使用它:

set_table_name  'old_table_name'
set_primary_key 'old_key_column'

这样,您可以在链接到任何所需的表格时使用所需的任何型号名称。

答案 1 :(得分:1)

1)通常,第一个问题是数据库架构设计具有复合主键(多列键),其中Rails(或至少ActiveRecord)需要名为“id”的主键。许多优秀的数据模型不使用代理键,它们使用自然键,因此无法避免使用复合键。实际上,在为ORM设计新数据库时,使用名为“id”的代理键更为实际,但通过在自然键上始终包含备用键约束/索引来强制执行数据完整性。

2)使用复数与单数形式的表命名(Rails希望复数映射到其域对象。对于许多数据库,这可以通过同义词轻松克服。

这些是我在Rails和其他MVC框架中遇到的两个问题,但是在过去几年中有些已经发生了变化,并提供了简单化废话的替代方案。更改遗留数据库是昂贵的,并且执行命名约定是一个很大的错误,我相信现在已经学到了。