Installation sur un nouveau serveur
Pour faire la migration depuis la V2, j'ai (Joshua) 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 utilisaient encore les vidéos interactives :
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
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 à jourdjango_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
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. Vous pouvez suivre la documentation suivante pour cela : https://yarnpkg.com/getting-started/install
Enfin, si tout est ok, vous pouvez respirer et collecter les fichiers statics pour Pod. Il suffit pour cela de lancer cette commande :
$> make statics
Nouveauté :
Dans cette version l'installation d'un serveur Redis pour la gestion du cache est obligatoire.
Voir la partie Installation de Redis de Installation de Pod V3 ou la doc officielle https://redis.io/docs/getting-started/
ElasticSearch :
Si vous changez d'instance ElasticSearch (notamment si vous n'utilisez pas un service ES déporté), pensez à réindexer les contenus avec cette commande :
$> cd django_projects/podv3 $> python manage.py index_videos --all
That's all folks !