„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie verschiebt man Django-Modelle mithilfe von Migrationen zwischen Apps?

Wie verschiebt man Django-Modelle mithilfe von Migrationen zwischen Apps?

Veröffentlicht am 08.11.2024
Durchsuche:105

How to Move Django Models Between Apps Using Migrations?

Modelle zwischen Django-Apps mit Migrationen verschieben

Das Organisieren von Modellen in separaten Django-App-Strukturen kann die Wartbarkeit und Struktur von Projekten verbessern. Während frühere Versuche mit South sich möglicherweise als schwierig erwiesen haben, bietet das Migrationssystem von Django 1.7 eine nahtlose Lösung.

Vorgehensweise

Mit migrations.SeparateDatabaseAndState können Sie gleichzeitig die Datenbank ändern und den Status von aktualisieren das Modell:

  1. Entfernen aus der alten App:

    • Erstellen Sie eine leere Migration für die alte App mit makemigrations.
    • Definieren Sie den SeparateDatabaseAndState-Vorgang in der Migration, um die Tabelle umzubenennen, das Modell aus dem Status der alten App zu löschen und das Modell zum Status der neuen App hinzuzufügen.
  2. Hinzufügen zur neuen App:

    • Kopieren Sie die Modelldatei in die neue App.
    • Erstellen Sie eine Migration für die neue App mit makemigrations.
    • Schließen Sie den vorhandenen CreateModel-Vorgang in einen SeparateDatabaseAndState-Vorgang ein und stellen Sie sicher, dass die Migration von der Migration der alten App abhängt.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3