ОБНОВЛЕНИЕ: в конце я написал тип свойства Sequence для DataMapper. Берите и используйте на свой страх и риск ;) https://gist.github.com/959059
Мы переносим большое, уже работающее веб-приложение PHP на Ruby on Rails. Наша схема далека от совместимости со значениями ActiveRecord по умолчанию, и она слишком велика, чтобы просто перенести схему, поэтому я отказался от ActiveRecord и начал использовать DataMapper, который позволяет нам легче скрывать различия схемы. Это хорошо работает с некоторыми тестами только для чтения, которые я сделал.
Теперь одна из самых больших несовместимостей с нашей схемой заключается в том, что мы используем ADODB и генерируем первичные ключи до вставки, используя таблицу sequences
(это распространенный шаблон), а не с auto_increment.
Есть ли способ заставить DataMapper генерировать идентификаторы таким же образом? Я не вижу упоминания об этом в документах.
На самом деле мы не можем переключить таблицы для использования auto_increment, потому что размер приложения означает, что мы на самом деле используем гибридную установку Rails/PHP с некоторым прокси и совместным использованием сеансов, поэтому мы можем постепенно мигрировать, поэтому приложение PHP должно продолжать работать. со схемой как есть (или с небольшими изменениями).