Maison > Article > base de données > Comment migrer de manière transparente des modèles entre les applications Django avec 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
Créez une migration vide dans l'ancienne application :
<code class="python">python manage.py makemigrations old_app --empty</code>
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>
Ajout d'un modèle à une nouvelle application
Créer une migration dans le nouveau app :
<code class="python">python manage.py makemigrations new_app</code>
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>
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!