-
Notifications
You must be signed in to change notification settings - Fork 23
Mise a jour de installation
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'
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.
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
pod@podvm:~/django_projects$ cd pod_next
pod@podvm:~/django_projects/pod_next$ git pull origin master
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
- 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
- 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
- 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
- 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
- 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
- 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
- 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'.
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
-
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)
-
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
-
Mettre le frontal web en maintenance (changement de vhost, tout rediriger vers un html etc.)
-
Mise à jour de la version de production : reprendre les étapes 2, 3 et 4
-
Vérifier les modifications spécifiques à la version de Pod si besoin (settings.py, settings_local.py, urls.py, etc…)
-
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 :-) )
- 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
Pod, plateforme de gestion de video
Avec la participation de :
[UNR Nord pas de calais] (http://www.unr-npdc.org/) ![UNR Nord pas de calais] (http://www.unr-npdc.org/sites/www.unr-npdc.org/themes/unrnpdc/img/logo_unr.gif "UNR Nord pas de calais")
Ministère de l'éducation nationale, de l'enseignement supérieur et de la recherche