sql >> Database >  >> RDS >> Mysql

Een model verplaatsen tussen twee Django-apps (Django 1.7)

Dit kan vrij eenvoudig worden gedaan met behulp van migrations.SeparateDatabaseAndState . Kortom, we gebruiken een databasebewerking om de tabel gelijktijdig te hernoemen met twee statusbewerkingen om het model uit de geschiedenis van de ene app te verwijderen en in die van een andere te maken.

Verwijderen uit oude app

python manage.py makemigrations old_app --empty

In de migratie:

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)
    ]

Toevoegen aan nieuwe app

Kopieer eerst het model naar model.py van de nieuwe app en vervolgens:

python manage.py makemigrations new_app

Dit genereert een migratie met een naïeve CreateModel operatie als enige operatie. Wikkel dat in een SeparateDatabaseAndState bewerking zodanig dat we niet proberen de tabel opnieuw te maken. Neem ook de eerdere migratie op als afhankelijkheid:

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)
    ]


  1. De prijs van niet zuiveren

  2. Gegroepeerde LIMIT in PostgreSQL:toon de eerste N rijen voor elke groep?

  3. Hoe te controleren of Radio Button is aangevinkt of geselecteerd in jQuery?

  4. Stel de tekenset en sortering van een tabel in MariaDB in