From b0212568d95ea7b27866394d05a2ccc56be72c10 Mon Sep 17 00:00:00 2001 From: Fred Date: Fri, 2 Apr 2021 09:42:49 +0200 Subject: [PATCH] Describe migrations and add a basic schema --- source/images/diagrams/django-migrations-db-schema.drawio | 1 + source/part-1-workspace/environment/_index.adoc | 5 ++++- source/part-3-django-concepts/_index.adoc | 2 ++ source/part-3-django-concepts/migrations.adoc | 7 +++++++ 4 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 source/images/diagrams/django-migrations-db-schema.drawio create mode 100644 source/part-3-django-concepts/migrations.adoc 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