Pour faire la migration depuis la V2, j'ai fait une installation sur un nouveau serveur. J'ai donc rapatrié les données (hors média) ainsi que la bdd.
$> cd /usr/local/django_projects/
$> tar --exclude='./pod/static' --exclude='./pod/media' -zcvf podv2.tgz ./podv2
$> mysqldump -h bdd.univ.fr -u pod2 -pXXXXXXXXXX pod2 > dumpfile.sql
J'ai rapatrié ces 2 fichiers sur mon nouveau serveur et j'ai déployé les données.
$> cd /usr/local/django_projects
$> tar -xvzf podv2.tgz .
$> mysql -h bdd.univ.fr -u pod2 -pXXXXXXXXXXX pod3 < dumpfile.sql
→ Ne pas oublier de modifier le fichier de settings_local pour diriger vers la nouvelle BDD
Pour ceux qui utilisait encore les vidéos interactive :
il faut remonter un environnement virtuel v2 : $> mkvirtualenv --system-site-packages --python=/usr/bin/python3 django_pod2
Ensuite, installer les dépendances qui vont bien :
$> python3 -m pip install -r requirements.txt
$> pip3 install mysqlclient==2.0.3
Il faut supprimer l'application de la base de données:
$> python manage.py migrate interactive zero
l'application tierce "interactive" n'est plus présente dans le code de Pod3, il faut donc penser à la retirer dans le settings_local (THIRD_PARTY_APPS = ["enrichment", "live"])
J'ai ensuite créé un nouvel environnement virtuel pour pod3
$> mkvirtualenv --system-site-packages --python=/usr/bin/python3 django_pod3
et j'ai récupéré la dernière version de Pod:
(django_pod3) pod@pod3:/usr/local/django_projects/podv3$ git pull origin master
Un MakeFile est maintenant fourni pour simplifier les commandes
(django_pod3) pod@pod3:/usr/local/django_projects/podv3$ cat Makefile
Vous pouvez donc l'utiliser pour finaliser votre installation. Il y a une commande pour tout mettre à jour : $> make upgrade, toutefois, je préfère détailler ici les étapes:
Je commence à installer les lib python :
$> python3 -m pip install -r requirements.txt
Ensuite, je prépare les commandes de mis à jour de la bdd.
Attention, il se peut qu'une dépendance avec l'application flatpage soit nécessaire, il faut donc aller récupérer le fichier sur l'ancien serveur dans ce répertoire :
pod@pod2:~/.virtualenvs/django_pod/lib/python3.7/site-packages/django/contrib/flatpages/migrations
$> make updatedb
Si vous rencontrez l'erreur ImportError: cannot import name 'FieldDoesNotExist' from 'django.db.models.fields' alors il faut mettre à jour django_select2_forms via la commande
$> pip3 install django_select2_forms --upgrade
Une fois la préparation de la migration effectuée, je peux migrer ma base de données:
$> make migrate
Enfin, si tout est ok, vous pouvez collecter les fichiers statics pour Pod.
Attention : Le mode de gestion des composants tiers pour le frontal de Pod à changé en podv3, nous ne les embarquons plus dans le code mais utilisons un gestionnaire de paquets pour cela.
Nous avons fait le choix de Yarn qu'il vous faut donc installer sur votre environnement.
make statics