django:外部キー列を手動で追加(newcolumn_id_refs_id_4bfb2ece?)
-
05-07-2019 - |
質問
外部キーフィールドを既存の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を実行すると、作成されます。
所属していません StackOverflow