更新:我最后为 DataMapper 编写了一个 Sequence 属性类型。自行承担风险;)https://gist.github.com/959059
我们正在将一个已经投入生产的大型 PHP Web 应用程序迁移到 Ruby on Rails。我们的 schema 与 ActiveRecord 的默认值相去甚远,而且它太大而无法简单地迁移 schema,因此我放弃了 ActiveRecord 并开始使用 DataMapper,这使我们可以更轻松地隐藏 schema 差异。这适用于我所做的一些只读测试。
现在,与我们的模式最大的不兼容之一是我们使用 ADODB 并在插入之前使用sequences
表(这是一种常见模式)生成主键,而不是使用 auto_increment。
有没有办法告诉 DataMapper 以相同的方式生成 ID?我在文档中没有看到提到它。
我们不能真正切换表以使用 auto_increment,因为应用程序的大小意味着我们实际上是在运行带有一些代理和会话共享的混合 Rails/PHP 设置,因此我们可以逐步迁移,因此 PHP 应用程序需要继续工作按原样使用架构(或仅进行微小更改)。