Skip to content
This repository has been archived by the owner on Sep 3, 2021. It is now read-only.

Mise a jour de installation

DrClockwork edited this page Dec 4, 2017 · 12 revisions

Pour connaitre votre version installée

Pour connaitre la version installée, il faut lancer cette commande en premier qui permet de récupérer tous les tags existant sur le dépôt:

$> git remote update 

Puis pour afficher la version actuellement téléchargée

$> git describe --abbrev=0 --tags 

Depuis la version 1.7.3 (prochainement) :

La version est renseigné sur le pied de page de Pod et fait référence à la variable VERSION du fichier settings.py.

##
# Version of the application
#
VERSION = '1.7.2'

Mise à jour

Vous trouverez ci-après différentes étapes pour mettre à jour votre installation de Pod. Attention, effectuez bien toutes les sauvegardes notamment de base de données.

1. Copie du dossier de la version de production (pour sauvegarde)

pod@podvm:~/django_projects$ cp -r pod pod_next

(Info) Vous pouvez sauvegarder vos éventuelles modifications des fichiers

pod@podvm:~/django_projects$ cd pod_next
pod@podvm:~/django_projects$ git diff > modifs.txt
pod@podvm:~/django_projects$ git stash

2. Mise à jour de la copie

pod@podvm:~/django_projects$ cd pod_next
pod@podvm:~/django_projects/pod_next$ git pull origin master

3. Mise à jour des paquets et de la bdd

Migration depuis une version après la 1.5.1 :

La première commande permet de se placer dans l'environnement virtuel python. Ensuite, nous vérifions que nous avons bien tous les paquest nécessaire à jours.

pod@podvm:~/django_projects/pod_next$ workon django_pod
(django_pod)pod@podvm:~/django_projects/pod_next$ pip install -r requirements.txt
(django_pod)pod@podvm:~/django_projects/pod_next$ cd pod_projects/pod_project
  1. Faire une sauvegarde des fichiers de configuration principaux :
(django_pod)pod@podvm:~/django_projects/pod_next/pod_projects/pod_project$ mv settings.py settings.py.bak
(django_pod)pod@podvm:~/django_projects/pod_next/pod_projects/pod_project$ mv settings_local.py settings_local.py.bak
(django_pod)pod@podvm:~/django_projects/pod_next/pod_projects/pod_project$ mv urls.py urls.py.bak
(django_pod)pod@podvm:~/django_projects/pod_next/pod_projects/pod_project$ mv wsgi.py wsgi.py.bak
  1. Copier les nouveaux fichiers de configuration :
(django_pod)pod@podvm:~/django_projects/pod_next/pod_projects/pod_project$ cp settings-sample.py settings.py
(django_pod)pod@podvm:~/django_projects/pod_next/pod_projects/pod_project$ cp settings_local-sample.py settings_local.py
(django_pod)pod@podvm:~/django_projects/pod_next/pod_projects/pod_project$ cp urls-sample.py urls.py
(django_pod)pod@podvm:~/django_projects/pod_next/pod_projects/pod_project$ cp wsgi-sample.py wsgi.py
  1. Editer ces fichiers avec vos configurations : (vous utilisez l'editeur que vous voulez !)

Les commandes suivantes mettent à jour les fichiers de gestion des versions de la base de données et effectue la migration du schéma et des données de la base de données

(django_pod)pod@podvm:~/django_projects/pod_next/pod_projects/pod_project$ cd ..
(django_pod)pod@podvm:~/django_projects/pod_next/pod_projects$ python manage.py makemigrations
(django_pod)pod@podvm:~/django_projects/pod_next/pod_projects$ python manage.py migrate
  1. Le fichier de traduction est maintenu à jour à chaque releases. Mise à part si vous avez des traductions spécifiques à votre instance de pod il faut uniquement compiler le nouveau fichier de traduction :
(django_pod)pod@podvm:~/django_projects/pod_next/pod_projects$ django-admin.py compilemessages
  1. Il convient également de faire de temps en temps la mise à jour des autres paquets (python mais pas que) présents sur le serveur voir même une mise à jour serveur (mais ca devient de l'administration système ;-) ) par exemple pour pip :
pip install --upgrade pip
  1. Pour mettre en place le template Pod dans elasticsearch, il faut utiliser cette commande:
(django_pod)pod@podvm:~/django_projects/pod/pod_projects$ python manage.py create_pod_index
  1. Pour indexer toutes ses vidéos, il faut utiliser cette commande:
(django_pod)pod@podvm:~/django_projects/pod/pod_projects$ python manage.py index_videos __ALL__

Migration depuis une version antérieure à 1.5.1 :

Vous pouvez vous basez sur les étapes de mise à jour plus avant dans la documentation en prenant en compte ces changements :

A l'étape 1 : Faire une sauvegarde des fichiers de configuration principaux,

(django_pod)pod@podvm:~/django_projects/pod_next/pod_projects/pod_project$ mv settings.py settings.py.bak
(django_pod)pod@podvm:~/django_projects/pod_next/pod_projects/pod_project$ mv urls.py urls.py.bak
(django_pod)pod@podvm:~/django_projects/pod_next/pod_projects/pod_project$ mv wsgi.py wsgi.py.bak

A l'étape 3 : Editer ces fichiers avec vos configurations,

Depuis la 1.5.1 le fichier settings.py a été séparé en deux fichiers : settings.py et settings_local.py. Toutes les variables susceptibles de varier d'une instance de Pod à l'autre ont étés déplacés dans le fichier settings_local.py. Il va donc être nécessaire de renseigner ces deux fichiers en vous basant sur votre settings.py.

A l'étape 4 : Le fichier de traduction est maintenu à jour à chaque releases,

Depuis la 1.6.0 le dossier 'traduction' n'existe plus. Il est désormais relocaliser à pod_project/locale et se met à jour à chaques releases.

Enfin depuis la 1.5.1 le theme par défaut 'LILLE1' a été renommé 'DEFAULT'.

4. Vérification du fonctionnement

Lancement du serveur de test sur la copie (ne pas oublier de mettre DEBUG=True dans le settings_local.py)

(django_pod)pod@podvm:~/django_projects/pod_next/pod_project$ python manage.py runserver ADRESSE_IP/NOM_DNS:PORT

Vérifier l'accès à la plateforme en saisissant les paramètres fournis http://ADRESSE_IP:PORT ou http://NOM_DNS:PORT


  1. Si tout est ok, on supprime la copie (rm -rf pod_next), on recrée une copie "point de restauration" (cp -r pod pod.back.YYYY-MM-DD)

  2. Attention, vérification qu'aucun encodage ne se déroule avant de relancer le frontal web avant de le redémarrer au risque d'arrêter l'encodage

ps auxf | grep ffmpeg
  1. Mettre le frontal web en maintenance (changement de vhost, tout rediriger vers un html etc.)

  2. Mise à jour de la version de production : reprendre les étapes 2, 3 et 4

  3. Vérifier les modifications spécifiques à la version de Pod si besoin (settings.py, settings_local.py, urls.py, etc…)

  4. Supprimer le répertoire static se situant à la racine du projet (normalement dans ce même répertoire) :

 (django_pod)pod@podvm:~/django_projects/pod_next/pod_projects$ mv static static.bak 

(je n''ai plus le droit de faire des rm suite à de mauvaises manip :-) )

  1. Lancement du collecstatic pour recréer ce répertoire et ré-importer tous les fichiers static nécessaire
(django_pod)pod@podvm:~/django_projects/pod/pod_project$ python manage.py collectstatic