Modelle zwischen Django-Apps mit Django 1.7 migrieren
Mit Django 1.7 ist die Verwaltung der Modellstruktur effizienter geworden. Angenommen, Sie haben Modelle in einer einzelnen App, die Sie an einzelne Apps verteilen müssen. So können Sie dies mit Django-Migrationen erreichen:
Modell aus alter App entfernen
Erstellen Sie eine leere Migration in der alten App:
<code class="python">python manage.py makemigrations old_app --empty</code>
Fügen Sie den folgenden Code zur generierten Migration hinzu Datei:
<code class="python">class Migration(migrations.Migration): dependencies = [] database_operations = [ migrations.AlterModelTable('TheModel', 'newapp_themodel') ] state_operations = [ migrations.DeleteModel('TheModel') ] operations = [ migrations.SeparateDatabaseAndState( database_operations=database_operations, state_operations=state_operations) ]</code>
Modell zu neuer App hinzufügen
Erstellen Sie eine Migration im neuen app:
<code class="python">python manage.py makemigrations new_app</code>
Ändern Sie die generierte Migrationsdatei so, dass sie Folgendes enthält:
<code class="python">class Migration(migrations.Migration): dependencies = [ ('old_app', 'above_migration') ] state_operations = [ migrations.CreateModel( name='TheModel', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ], options={ 'db_table': 'newapp_themodel', }, bases=(models.Model,), ) ] operations = [ migrations.SeparateDatabaseAndState(state_operations=state_operations) ]</code>
Durch Befolgen dieser Schritte können Sie nahtlos Verschieben Sie Ihre Modelle zwischen Django-Apps und sorgen Sie so für eine sauberere und besser organisierte Datenbankstruktur.
Das obige ist der detaillierte Inhalt vonWie migriere ich Modelle nahtlos zwischen Django-Apps mit Django 1.7?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!