Ich bin seit etwa 2 Jahren ein Benutzer von Django und es gibt eine Funktion, die ich immer befürchten musste: gefälschte Migrationen.Django migrate --fake und --fake-initial erklärt
Ich habe sah ziemlich überall und die meisten Informationen, die ich aus dem documentation bekommen kann, wo es heißt:
--fake
Django erzählt die Migrationen zu markieren haben angewendet oder nicht angewendet, aber ohne SQL ausgeführt, um Ihre Datenbankschema zu ändern.
Dies ist für fortgeschrittene Benutzer gedacht, um den aktuellen Migrationsstatus direkt zu bearbeiten, wenn sie Änderungen manuell anwenden; sein davor gewarnt, dass mit --fake das Risiko läuft die Migration Zustand Tabelle in einen Zustand setzen, wo eine manuelle Wiederherstellung benötigt werden Migrationen richtig laufen zu lassen.
--fake-initial
Ermöglicht Django eine App erste Migration, wenn alle Datenbank Tabellen mit den Namen aller Modelle von allen Create Operationen in dieser Migration existieren bereits erstellt zu überspringen. Diese Option ist für die Verwendung bei der ersten Ausführung von Migrationen für eine Datenbank vorgesehen, die die Verwendung von Migrationen vor der Verwendung von voraussetzt. Diese Option überprüft jedoch nicht für das übereinstimmende Datenbankschema über übereinstimmende Tabellennamen hinaus. Daher ist nur sicher zu verwenden, wenn Sie sicher sind, dass Ihr vorhandenes Schema dem entspricht, was in Ihrer anfänglichen Migration aufgezeichnet wurde.
Ich bekomme die allgemeine Idee und warum man diese Funktion nutzen möchte. Aber ich verstehe nicht den Teil, wo es heißt, dass dies nur für fortgeschrittene Benutzer gedacht ist.
Kann jemand erklären, was hinter der Szene passiert und warum manuelle Wiederherstellung benötigt wird.
HINWEIS
ich für die genaue rohen SQL-Abfragen nicht bin auf der Suche, die ausgeführt wird, wenn eine Migration vorgetäuscht. Ich bin nur auf der Suche nach einer allgemeinen Vorstellung von dem, was hinter der Szene passiert und vielleicht ein Beispiel dafür, warum das Vortäuschen einer Migration zu einem Zustand führen würde, in dem makemigrations
nicht richtig funktionieren würde.
Danke für die Antwort! Es hat mir geholfen, eine reale Situation für das Vortäuschen von Migrationen zu sehen, aber ich frage mich immer noch, was hinter der Szene passiert, während ich Migrationen vortäusche. – scharette
@scharette Ja, nützliche Frage. Erklärt. – hynekcer