Ich habe Schwierigkeiten beim Erstellen von Datenmigrationen. Ich verwende zwei Datenbanken für meine Apps. Ich konfigurierte Datenbanken in settings.py und erstellte auch einen Router wie in Django Dokumentation .
%Vor%Hier ist das Modell und die Migrationen einer dieser Apps:
%Vor%Das Problem ist: Wenn ich den Befehl "migrieren" ausführen, werden nur Anwendungen migriert, die mit der Standarddatenbank verbunden sind. Die Migrationen im Ruhezustand der Apps werden nie ausgeführt. Wenn ich die Migration für eine solche App mit der Option --database starte, funktioniert das problemlos.
Wie kann ich die Datenbank pro Migration angeben? Soll der Router das nicht genau verwalten? Oder habe ich etwas anderes verpasst?
Sie müssen migrate
einmal für jede Datenbank ausführen und das Ziel mit --database
angeben. Jedes Mal wird es Ihren Router konsultieren, um zu sehen, welche Migrationen tatsächlich in dieser Datenbank ausgeführt werden.
Ich vermute, dass es so entworfen wurde, um die Explizitheit gegenüber der Selbstverständlichkeit zu bevorzugen. In Ihrem Workflow müssen Sie beispielsweise die verschiedenen Datenbanken zu unterschiedlichen Zeiten migrieren.
Beachten Sie jedoch, dass Sie nicht in der Lage sind, anhand der Ausgabe zu erkennen, welche Migrationen tatsächlich ausgeführt wurden. seit :
Migrationen führen nur im Hintergrund keine Operationen auf einem Modell aus, für das% code% zurückgegeben wird.
Tags und Links django