Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Bloc de code
languagebash
$> 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

Pensez a récupérer les scripts de migration des librairies pythons utilisées par pod ($HOME/.local/ sur ubuntu si vous n'utilisez pas de virtual env, sinon ./<votre_virtual_env>) dans une archive tar que vous décompresserez dans votre environnement cible après avoir installé les librairies (pip install)

Bloc de code
languagebash
# Il faut patcher dans le tar la version de python que vous aller utiliser en PODv3
find <path_de_vos_librairies_python> -path "*/migrations/00*.py" -not -name "__init__.py" -exec tar --transform='s|python3.7|python3.9|' -rvf migration.tar {} \;


J'ai rapatrié ces 2 fichiers sur mon nouveau serveur et j'ai déployé les données.

...

Avertissement
titleAttention

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

Sinon vous vous placez dans le même répertoire que lorsque vous avez sauvé vos fichiers de migration un peu plus haut et vous les extrayez

Bloc de code
languagebash
tar xvf migration.tar


$> 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

...

Enfin, si tout est ok, vous pouvez respirer et collecter les fichiers statics pour Pod. Il suffit pour cela de lancer cette commande :

...

Bloc de code
languagebash
# Si vous êtes dans un environnement contenairisé et qu'il y a des fichiers customs dans le répertoire static
python3 manage.py collectstatic
# Si vous pouvez vous permettre de tout effacer dans static ( python3 manage.py collectstatic --clear )
make statics

Nouveauté :

Dans cette version l'installation d'un serveur Redis pour la gestion du cache est obligatoire.

...

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 :

Bloc de code
languagebash
$> cd django_projects/podv3
$> python manage.py index_videos --all

Si l'indexation échoue, jettez un oeil à pod/video_search/commands/index_videos.py si vous voyez une mention de __VIDEOS__ alors il faut la substituer par pod.video.context_processors.get_available_videos

Si après indexation vous n'avez aucune vidéo sur votre site et lors de vos recherches ou que vous avez des videos mais que vous ne pouvez pas les jouer, il se peut que certaines tables ne soient pas migrées, dans mon cas il fallait migrer:

  • video_encodingvideo => video_encode_transcript_encodingvideo
  • video_encodingaudio => video_encode_transcript_encodingaudio
  • video_encodingstep => video_encode_transcript_encodingstep
  • video_playlistvideo => video_encode_transcript_playlistvideo
  • video_videorendition => video_encode_transcript_videorendition ( attention, cette table a un nouveau field threshold qu'il faut mettre à 0 par défaut)


That's all folks !