2011-12-27 5 views
1

私は2つのデータベース、開発(デフォルト)データベースとライブデータベースを持っています。保存時にPythonモデルが正しいデータベースを参照しない

私のモデルはそうのようになります。

class Derp(models.Model): 
    company = models.ForeignKey(Co) 

モデルの残りの部分は本当に関係ありません。

問題は、新しい「Derp」を保存するときに、私の外部キーとして参照しているIDがライブデータベースに存在するため、「Integrity Error」が発生します。私のデフォルトデータベースではありません。

問題を少し難しくするために、これは開発であるため、私が保存しているテーブルは開発データベースにあります。したがって、外部キーは開発時にテーブルを参照する必要があります(したがってエラーをスローする)が、私はそれを私のライブデータベースを参照する必要があります。

お願いします!

+0

なぜあなたはdev dbの外部キーでライブDBを参照しますか? – thatwasbrilliant

+0

@thatwasbrilliant私が参照しているオブジェクトのIDがライブDBに存在し、開発DBに存在しないためです。 – tnw

+0

なぜですか?通常、開発環境でプロダクションをミラー化する場合は、ライブDBをdev DBにコピーする必要があります。本当にそれをやりたくない場合は、おそらく1つのテーブルだけをコピーして、外部キーを解決することができます。 – thatwasbrilliant

答えて

4

開発データベースと本番データベースを区別するために、Djangoの複数のデータベース機能を使用しないでください。

開発時には、開発データベースにアクセスするだけで、本番環境ではプロダクション環境にアクセスする必要があります。混乱の可能性はないはずです。

+0

ああ、あなたは絶対に正しいです。私はそのようには見ませんでした。 – tnw

関連する問題