...
Bloc de code | ||
---|---|---|
| ||
$> 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 | ||
---|---|---|
| ||
# 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 | |||||
---|---|---|---|---|---|
| |||||
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 : 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
|
$> 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
...
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 | ||
---|---|---|
| ||
# 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 | ||
---|---|---|
| ||
$> 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 !