Vous consultez une documentation pour une ancienne version de Pod (v2). Si vous utilisez Pod V3 rendez-vous sur Mise à jour de version en pod V3. |
À partir de la version 2.8.2, vous pouvez aller dans l'administration de Pod, (https://VOTRE_SERVEUR/admin/main/configuration/), vous y trouverez :
Basculez en mode maintenance (maintenance_mode = 1), cela va désactiver certaines fonctionnalités, et afficher un bandeau "Maintenance en cours. Certaines fonctionnalités sont indisponibles".
Voici les commandes à lancer pour effectuer une mise à jour de Pod V2
pod@pod:~$ cd django_projects/podv2/
pod@pod:~/django_projects/podv2$ workon django_pod
(django_pod) pod@pod:~/django_projects/podv2$ git status
(django_pod) pod@pod:~/django_projects/podv2$ git pull origin master
(django_pod) pod@pod:~/django_projects/podv2$ pip3 install -r requirements.txt
(django_pod) pod@pod:~/django_projects/podv2$ python manage.py makemigrations
(django_pod) pod@pod:~/django_projects/podv2$ python manage.py migrate
# Attention : avant de lancer collectstatic --clear, assurez-vous d'avoir sauvegardé le dossier static/custom si vous y avez mis des fichiers personnalisés.
(django_pod) pod@pod:~/django_projects/podv2$ python manage.py collectstatic --no-input --clear
(django_pod) pod@pod:~/django_projects/podv2$ sudo systemctl restart uwsgi-pod
Si vous aviez activé le mode maintenance, pensez à le désactiver (maintenance_mode = 0), après avoir testé que tout est bien reparti .
Pour éviter les conflits de clés étrangère lors de la migration / mise à jour, Il faut modifier votre configuration de base de données(mysql) et annuler la véirification des clés étrangères en ajoutant foreign_key_checks = 0:
ce qui donne : 'OPTIONS': { 'init_command': "SET storage_engine=INNODB, sql_mode='STRICT_TRANS_TABLES', innodb_strict_mode=1, foreign_key_checks = 0", },
Lors de la migration de Pod vers une version 2.8, lors de l'exécution de la commande python manage.py makemigrations, il sera demandé s'il y a eu un changement de modèle en lien Attendee en lieu et place de User.
C'est le cas, la classe Attendee vient remplacer User (cf. bbb/models.py): il faut alors répondre Yes à la question posée à ce moment de la migration.
Ainsi, dans la base de données de Pod, la table bbb_user est renommée en bbb_attendee.
Enfin, si vous utilisez les groupes pour restreindre l'accès à vos vidéos dans votre instance de Pod, il faut migrer les groupes de gestion vers les nouveaux groupes d'accès (voir Configurer les groupes d'accès)
Pour cela, nous avons mis à disposition une commande :
(django_pod) pod@pod:~/django_projects/podv2$ python manage.py accessgroups migrate_groups
(django_pod) pod@pod:~/django_projects/podv2$ python manage.py shell
from pod.video.models import Notes, AdvancedNotes
from django.utils import timezone
if __name__ == "__main__":
notes = Notes.objects.all()
for n in notes:
AdvancedNotes.objects.create(
video=n.video, user=n.user,
added_on=timezone.now(),
modified_on=timezone.now(),
note=n.note, timestamp=0,
status='0'
)
NB : les notes créées avant AdvancedNotes seront enregistrées avec un timestamp à 0 et un status « privé - » (uniquement l’auteur de la note peut la voir)
Pour l'utilisation de l'autotranscription, il faut suivre la première partie de la documentation disponible à cette adresse : Mise en place de l'autotranscription
A partir de la version 2.5.1 Pod utilise des commandes de la librairie deepspeech qui nécessite que les CPU supportent les instructions "AVX".
Ces instructions sont disponibles à partir des "Sandy Bridge" (intel) et "Bulldozer" (amd) en gros après 2011.
Si vous êtes dans une version antérieure à la 2.5.1, vous pouvez tester la compatibilité dans l'environnement podv2 avec la commande :
python -m deepspeech
si la réponse est :
No module named deepspeech.__main__;
'deepspeech' is a package and cannot be directly executed"
c'est bon, si la réponse est
"Illegal instruction (core dumped)"
ce n'est pas bon et il faudra soit utiliser un autre serveur soit désactiver l'autotranscription ainsi que l'importation de la librairie comme expliqué ci dessous.
lors de la commande
python manage.py makemigrations
une erreur apparait : Instruction non permise
cette erreur est lié à deepspeech
il faut donc :
pip3 uninstall deepspeech
nano pod/video/transcript.py
puis continuer les commandes ...
En cas d'update du paquet ElasticSearch, le plugin analysis-icu ne se met pas à jour automatiquement et n'est plus compatible avec la version d'ElasticSearch. il faut le supprimer, le réinstaller, recréer l'index puis réindexer les vidéos.
cd /usr/share/elasticsearch/ bin/elasticsearch-plugin remove analysis-icu bin/elasticsearch-plugin install analysis-icu service elasticsearch restart su - pod cd django_projects/podv2 python manage.py create_pod_index python manage.py index_videos --all
pod@pod:~$ cd django_projects/podv2/
pod@pod:~/django_projects/podv2$ workon django_pod
(django_pod) pod@pod:~/django_projects/podv2$ git status
(django_pod) pod@pod:~/django_projects/podv2$ git pull origin master
(django_pod) pod@pod:~/django_projects/podv2$ pip3 install -r requirements.txt
(django_pod) pod@pod:~/django_projects/podv2$ sudo /etc/init.d/celeryd restart
Pour mettre à jour le studio d'Opencast dans votre instance de Esup-Pod, voici les étapes à suivre :
Récupérer la dernière version d'Opencast Studio via la commande suivante :
|
Régénérez l'Opencast Studio avec la bonne configuration pour Pod via les commandes suivantes :
|
Le répertoire build est alors mis à jour. Renommez-le en studio, puis copier le dans le répertoire pod/custom/static/opencast/
|
Finalement, n'oubliez pas de collecter vos fichiers statiques pour la mise en production via la commande :
|