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