質問

外部キーフィールドを既存のdjango model / postgresテーブルに追加する必要があります。 djangoのドキュメントに従って、「sqlall myapp」コマンドを実行して「違いを解決」しました。

明らかな違いは、問題のテーブルに新しい制約が追加された列が追加されたことです。これは次のようになります。

ALTER TABLE "myapp_mytable" ADD CONSTRAINT newcolumn_id_refs_id_4bfb2ece 
FOREIGN KEY ("newcolumn_id") REFERENCES "myapp_theothertable" ("id") 
DEFERRABLE INITIALLY DEFERRED;

データベースをいじる前に、その文、特に newcolumn_id_refs_id_4bfb2ece の最後の部分が何を参照しているかを理解したいのですが

ありがとう、

マーティン

役に立ちましたか?

解決

これにより、PostgreSQLが他のテーブルへの外部キーを理解し、強制し、myapp_table.newcolumnにmyapp_theothertable.idで見つからないものがないことを保証します

実際、djangoアプリはその制約がなくても問題なく動作します。ただし、適切な場所に配置することをお勧めします。その後、dumpdata-loaddata -cycleを実行すると、作成されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top