diff --git a/source/images/diagrams/django-migrations-db-schema.drawio b/source/images/diagrams/django-migrations-db-schema.drawio new file mode 100644 index 0000000..3789024 --- /dev/null +++ b/source/images/diagrams/django-migrations-db-schema.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/source/part-1-workspace/environment/_index.adoc b/source/part-1-workspace/environment/_index.adoc index 4ba087c..678dad6 100644 --- a/source/part-1-workspace/environment/_index.adoc +++ b/source/part-1-workspace/environment/_index.adoc @@ -457,6 +457,7 @@ L'outil le plus connu est https://tox.readthedocs.io/en/latest/[Tox], qui consis # content of: tox.ini , put in same dir as setup.py [tox] envlist = py36,py37,py38,py39 +skipsdist = true [testenv] deps = @@ -465,8 +466,10 @@ commands = pytest ---- -Démarrez ensuite la commande `tox`, pour démarrer la commande `pytest` sur les environnements Python 2.7 et 3.6, après avoir installé nos dépendances présentes dans le fichier `requirements/dev.txt`. +Démarrez ensuite la commande `tox`, pour démarrer la commande `pytest` sur les environnements Python 3.6, 3.7, 3.8 et 3.9, après avoir installé nos dépendances présentes dans le fichier `requirements/dev.txt`. +WARNING: pour que la commande ci-dessus fonctionne correctement, il sera nécessaire que vous ayez les différentes versions d'interpréteurs installées. +Ci-dessus, la commande retournera une erreur pour chaque version non trouvée, avec une erreur type `ERROR: pyXX: InterpreterNotFound: pythonX.X`. ==== Configuration globale diff --git a/source/part-3-django-concepts/_index.adoc b/source/part-3-django-concepts/_index.adoc index 70df8cb..984def9 100644 --- a/source/part-3-django-concepts/_index.adoc +++ b/source/part-3-django-concepts/_index.adoc @@ -17,6 +17,8 @@ En simplifiant, Django suit bien le modèle MVC, et toutes ces étapes sont lié include::models.adoc[] +include::migrations.adoc[] + include::shell.adoc[] include::admin.adoc[] diff --git a/source/part-3-django-concepts/migrations.adoc b/source/part-3-django-concepts/migrations.adoc new file mode 100644 index 0000000..e16178e --- /dev/null +++ b/source/part-3-django-concepts/migrations.adoc @@ -0,0 +1,7 @@ +== Migrations + +Dans cette section, nous allons voir comment les migrations fonctionnent. +Dans une première version, elles peuvent sembler un peu magiques, dans la mesure où elles appliquent des modifications au niveau du schéma de données en se basant uniquement sur des modifications effectuées sur le modèle. + +Pour repartir de notre exemple ci-dessus, nous avions un modèle reprenant quelques classes, et saupoudrées de propriétés. +Pour schématiser, chaque classe correspond à une table dans la base de données, tandis que que chaque propriété correspond à un champ de cette table. \ No newline at end of file