sql >> Databáze >  >> RDS >> Mysql

Jak přesunout model mezi dvěma aplikacemi Django (Django 1.7)

To lze provést poměrně snadno pomocí migrations.SeparateDatabaseAndState . V zásadě používáme databázovou operaci k přejmenování tabulky současně se dvěma stavovými operacemi, abychom odstranili model z historie jedné aplikace a vytvořili jej v jiné.

Odebrat ze staré aplikace

python manage.py makemigrations old_app --empty

Při migraci:

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

Přidat do nové aplikace

Nejprve zkopírujte model do souboru model.py nové aplikace a poté:

python manage.py makemigrations new_app

To vygeneruje migraci s naivním CreateModel operace jako jediná operace. Zabalte to do SeparateDatabaseAndState operaci, abychom se nepokoušeli znovu vytvořit tabulku. Zahrňte také předchozí migraci jako závislost:

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. Přehled klastrování ProxySQL v ClusterControl

  2. Jaký je nejlepší způsob, jak zkrátit datum na serveru SQL Server?

  3. Operátory pro extrahování dílčích komponent JSON

  4. Změna hesla pomocí Oracle SQL Developer