...
Avant l'import des données, côté Podv2, il est nécessaire d'installer, via pip, les packages request requests et wget.
| Bloc de code |
|---|
| language | bash |
|---|
| title | Podv2 / Pré-requis (compte root ou %userpod%) |
|---|
|
[%userpod%@podv2 ~]$ pip3 install requestrequests
[%userpod%@podv2 ~]$ pip3 install wget
|
...
Il est nécessaire de lancer les commandes suivantes, dans l'ordre :
| Etape | Commande à exécuter | Statut | Commentaires |
|---|
| 1 | python manage.py import_data User | | Ne pas oublier de modifier le code pour pouvoir exporter l'ensemble des users.
|
| 2 | python manage.py import_data Channel | | Chez moi, cette commande plantait en plein milieu. Après vérification, cette erreur provient du fait que certains utilisateurs (propriétaires ou utilisateurs d'une chaîne) n'ont pas été créés, car ils n'avaient jamais postés de vidéos et n'ont alors pas été repris par le script des users de l'étape 1. J'ai modifié le script, à lancer sur Podv1 pour exporter l'ensemble des utilisateurs. |
| 3 | python manage.py import_data Theme | |
|
| 4 | python manage.py import_data Type | |
|
| 5 | python manage.py import_data Discipline | |
|
| 6 | python manage.py import_data FlatPage | |
|
| 7 | python manage.py import_data UserProfile | | | État |
|---|
| |
|---|
| colour | Green |
|---|
| title | Solution 1 |
|---|
| Le fait d'exporter l'ensemble des utilisateurs fait fonctionner cette commande.| État |
|---|
| |
|---|
| colour | Blue |
|---|
| title | Solution 2 |
|---|
| Commande non utilisée.A priori, cette commande devrait mettre à jour les profils des utilisateurs dans la table authentication_owner. Par défaut, tous les utilisateurs créés lors de cette migration sont considérés comme des des comptes étudiants locaux. Après vérification, la table authentication_owner est mise à jour à chaque connexion de l'utilisateur (paramétrage UM : POPULATE_USER: ldap). Ainsi, cette commande ne me paraît pas utile et ne sera pas utilisée chez nous. |
| 8 | python manage.py import_data Pod | |
|
| 9 | python manage.py import_data tags | | Voir les différentes remarques ci-dessous : : le fichier tags.json n'existe que si sa génération s'est bien déroulée (cf. avertissement sur le serveur podv1).
: Il peut y avoir des erreurs du style "Data too long for column 'tags' at row 1'.
Pour éviter cela, il faut modifier son settings_local.py, et remplacer la ligne 'OPTIONS': {'init_command':"SET storage_engine=INNODB, sql_mode='STRICT_TRANS_TABLES', innodb_strict_mode=1;"} par 'OPTIONS': {'init_command':"SET storage_engine=INNODB;"} Le fait de désactiver le mode STRICT permet que les données soient tronquées, et évite de faire planter l'import. A la place, cela va juste générer un warning du type Warning: (1265, "Data truncated for column 'tags' at row 1"). : certaines lignes peuvent avoir des erreurs, du style 2459 does not exist. En vérifiant, je ne sais pas à quoi cela correspond et cela ne semble pas avoir d'incidence.
: des nouveaux mots-clés sont créés via cette migration (Ex: de, l, la, ses...). Il faudra les supprimer manuellement par la suite.
PENSEZ A RÉACTIVER le mode STRICT dans settins_local.py par la suite.
|
| 10 | python manage.py import_data Chapter | |
|
| 11 | python manage.py import_data Contributor | |
|
| 12 | python manage.py import_data docpods | | : le fichier docpods.json n'existe que si sa génération s'est bien déroulée (cf. avertissement sur le serveur podv1). |
| 13 | python manage.py import_data trackpods | | : le fichier trackpods.json n'existe que si sa génération s'est bien déroulée (cf. avertissement sur le serveur podv1). |
| 14 | python manage.py import_data enrichpods | | : le fichier enrichpods.json n'existe que si sa génération s'est bien déroulée (cf. avertissement sur le serveur podv1). |
Téléchargement des vidéos
Avant de pouvoir télécharger les vidéos, il faut vous assurer qu'elles sont toutes accessibles en téléchargement sur podV1. Voici un scripts pour mettre à jour les droits :
| Bloc de code |
|---|
|
for dossier in $(ls -d videos/*)
do
for fichier in $(ls -F $dossier| grep -v '/$')
do
if test -f $dossier/$fichier; then
chmod a+r $dossier/$fichier
fi
done
done |
| Info |
|---|
|
Avant de lancer les téléchargements, si vous avez beaucoup de vidéos à télécharger, et que vous utilisez la file d'attente d'encodage sur podV2, nous vous conseillons de mettre chaque fichier en file d'attente d'encodage dès son téléchargement terminé. Pour cela, il suffit d'ajouter la ligne suivante : vid.launch_encode = True juste avant la ligne "vid.save()" dans le fichier video/management/commands/download_video_source_file |
Une fois la base de podv2 alimentée, voici le script permettant de récupérer les vidéos :Une fois la base de podv2 alimentée, voici le script permettant de récupérer les vidéos.
| Bloc de code |
|---|
| language | bash |
|---|
| title | Podv2 / Téléchargement des fichiers vidéos (compte %userpod%) |
|---|
|
[%userpod%@podv2 ~]$ cd
[%userpod%@podv2 ~]$ source .bashrc
[%userpod%@podv2 ~]$ cd /data/www/%userpod%/django_projects/podv2/
[%userpod%@podv2 /data/www/%userpod%/django_projects/podv2]$ workon django_pod
# Shell Python
(django_pod) [%userpod%@podv2 /data/www/%userpod%/django_projects/podv2]$ python manage.py shell |
...