Frage

Ich brauche ein Fremdschlüsselfeld zu einer vorhandenen django Modell / Postgres Tabelle hinzuzufügen. Gemäß der django Dokumentation, lief ich den Befehl ‚sqlall myapp‘ auf ‚den Unterschied erarbeiten‘.

Der offensichtlichste Unterschied ist, dass die Tabelle in Frage jetzt eine zusätzliche Spalte mit einem neuen contraint hat, die wie folgt aussieht:

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

Bevor Sie mit meiner Datenbank durcheinander, ich möchte diese Aussage verstehen, insbesondere, was nicht der letzte Teil der newcolumn_id_refs_id_4bfb2ece beziehen?

Danke,

Martin

War es hilfreich?

Lösung

Es macht PostgreSQL verstehen und durchsetzen Ihre Fremdschlüssel der anderen Tabelle und es garantiert nichts in myapp_table.newcolumn sein, die in myapp_theothertable.id kann nicht gefunden werden

Eigentlich wird, Ihre django app gut funktionieren auch ohne diese Einschränkung. Allerdings ist es eine gute Idee, einen an seinem Platz zu haben, und wenn Sie das tun danach eine DumpData -. Loaddata -Zyklus, wird es erstellt

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top