更新: 最後に DataMapper の Sequence プロパティ型を書きました。自己責任で使用してください;) https://gist.github.com/959059
すでに本番環境にある大規模な PHP Web アプリケーションを Ruby on Rails に移行しています。私たちのスキーマは ActiveRecord のデフォルトと互換性がなく、スキーマを単純に移行するには大きすぎるため、ActiveRecord を捨てて DataMapper の使用を開始しました。これにより、スキーマの違いをより簡単に隠すことができます。これは、私が行ったいくつかの読み取り専用テストでうまく機能しています。
ここで、スキーマとの最大の非互換性の 1 つは、sequences
auto_increment の代わりにテーブル (これは一般的なパターンです) を使用して、ADODB を使用し、挿入の前に主キーを生成することです。
同じ方法で ID を生成するように DataMapper に指示する方法はありますか? ドキュメントでそれについて言及されていません。
テーブルを auto_increment を使用するように実際に切り替えることはできません。これは、アプリケーションのサイズが実際にハイブリッド Rails/PHP セットアップを実行していることを意味し、いくつかのプロキシとセッション共有を使用して段階的に移行できるため、PHP アプリケーションは動作し続ける必要があるためです。スキーマをそのまま (またはわずかな変更のみ)。