0

更新:さて、Rails をデバッグしたところ、両方のテーブルの名前が同じであることが原因であることがわかりました。

validates_uniquness_ofunscopedモデルのクラスを呼び出します。unscoped従来のテーブルからすべての行を返します。

元の投稿:ある Rails アプリケーションから別の Rails アプリケーションへのレガシー データの移行を作成しています (両方の DB は Postgresql です)。

私の新しいアプリケーションにはvalidates_uniqueness_of、モデルの 1 つの検証があります。

ここで説明したように、レガシー DB への接続を確立するレガシー モデル クラスを作成しました ( を使用establish_connection :legacy)。アプリケーション レベルの移行中に、レガシー テーブルからモデル データをコピーして、新しいアプリケーションに行ごとに新しいモデルを作成します。一意性の検証が失敗するため (新しい DB がまだ空であっても)、最初のモデル作成でプロセスが失敗します。

validates_uniqueness_ofこれは、何らかの理由でレガシーDBも考慮に入れていると信じています。

検証を行ったモデルのテーブルは、従来のデータベースと新しいデータベースの両方で同じ名前を持っています。

4

0 に答える 0