Ich habe meine Tabelle von app_a
in andere app_b
mit db_table
verschoben. Ich habe zunächst Metainformationen wieDjango Tabelle in andere App mit db_table verschieben und nicht löschen Original-Tabelle
# app_b.models.ppy
class Table(models.Model)
# all fields
class Meta:
db_table = 'app_a_table'
app_label = 'app_a'
Wenn ich irgendwelche Änderungen in dieser Tabelle machen in app_b
, Migrationen keine neuen Migrationsdatei unter Migration Ordner erzeugt. Es sagt.
No changes detected in app 'app_b'
Ich habe versucht, von diesem ans und kommentiert app_label = 'app_a'
. Jetzt erkennt es nach der Migration die Änderungen und erstellt die Migrationsdatei.
Dann führe ich python manage.py migrate
Befehl aus, es wird ständig aufgefordert, Original-Tabelle zu löschen.
The following content types are stale and need to be deleted:
app_a | table
Any objects related to these content types by a foreign key will also
be deleted. Are you sure you want to delete these content types?
If you're unsure, answer 'no'.
Type 'yes' to continue, or 'no' to cancel: no
Wie unterdrücke ich diese Benachrichtigung? Wie kann ich der Django-Migration mitteilen, dass diese Tabelle in verschiedenen Apps vorhanden ist?
Sie sollten eine mirgation erstellen, die eine neue Tabelle erstellt. kopiert die Daten und löscht die alten. Vergessen Sie nicht die Referenzen. –
@KlausD. Wenn die Tabelle groß ist, würde das zu erheblichen Ausfallzeiten führen. – e4c5