Maison > base de données > tutoriel mysql > Comment migrer de manière transparente des modèles entre les applications Django avec Django 1.7 ?

Comment migrer de manière transparente des modèles entre les applications Django avec Django 1.7 ?

Barbara Streisand
Libérer: 2024-11-04 20:33:02
original
1092 Les gens l'ont consulté

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

Migration de modèles entre les applications Django avec Django 1.7

Avec Django 1.7, la gestion de la structure des modèles est devenue plus efficace. Supposons que vous disposiez de modèles dans une seule application que vous devez distribuer à des applications individuelles. Voici comment y parvenir en utilisant les migrations Django :

Suppression du modèle de l'ancienne application

  1. Créez une migration vide dans l'ancienne application :

    <code class="python">python manage.py makemigrations old_app --empty</code>
    Copier après la connexion
  2. Ajoutez le code suivant à la migration générée fichier :

    <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>
    Copier après la connexion

Ajout d'un modèle à une nouvelle application

  1. Copiez le modèle dans le fichier model.py dans la nouvelle application .
  2. Créer une migration dans le nouveau app :

    <code class="python">python manage.py makemigrations new_app</code>
    Copier après la connexion
  3. Modifiez le fichier de migration généré pour inclure les éléments suivants :

    <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>
    Copier après la connexion

En suivant ces étapes, vous pouvez en toute transparence déplacez vos modèles entre les applications Django, garantissant une structure de base de données plus propre et plus organisée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal