Heim  >  Artikel  >  Datenbank  >  Wie migriere ich Modelle nahtlos zwischen Django-Apps mit Django 1.7?

Wie migriere ich Modelle nahtlos zwischen Django-Apps mit Django 1.7?

Barbara Streisand
Barbara StreisandOriginal
2024-11-04 20:33:021017Durchsuche

How to Seamlessly Migrate Models Between Django Apps with Django 1.7?

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

  1. Erstellen Sie eine leere Migration in der alten App:

    <code class="python">python manage.py makemigrations old_app --empty</code>
  2. 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

  1. Kopieren Sie das Modell in die model.py-Datei in der neuen App .
  2. Erstellen Sie eine Migration im neuen app:

    <code class="python">python manage.py makemigrations new_app</code>
  3. Ä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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn