Suivre les instructions générales (1ère partie), puis les instructions particulières à chaque révision.
Vous devez suivre ces instruction à chaque mise à jour des fichiers de Médiacad.
La mise à jour de la base de données est automatique, quelle que soit la différence entre la version ancienne et la nouvelle version de l'application.
Il est très fortement recommandé de réaliser d'abord la mise en jour en local ou sur un serveur de pré-prod, avec les données de la sauvegarde élaborée au point 4.
Vous testez ensuite l'absence de problèmes, et enfin vous pouvez mettre à jour le serveur de production.
1) Prévenez les utilisateurs de la future mise à jour de l'application (liste de diffusion, mails...).
2) Environ 1/4 d'heure avant la mise à jour, modifiez les variables d'environnement :
SetEnv APPLICATION_MODE update
SetEnv APPLICATION_UPDATE_STEP warning
Ceci affiche un message d'alerte sur toutes les pages de Médiacad, invitant les utilisateurs à se déconnecter, et interdit l'ajout et la modification des médias (pour purger les tâches d'encodage).
3) Dans Médiacad, avec le compte sAdmin, allez dans le menu Application > Mettre à jour Médiacad. La page indique le nombre de tâches d'encodage en cours et en attente.
VOUS NE DEVEZ PAS PASSER A LA MISE A JOUR TANT QUE DES FICHIERS NE SONT PAS ENCODES (sinon l'index sera incohérent).
Attendez et actualisez la page jusqu'à ce qu'elle indique en vert "Vous pouvez procéder à la mise à jour des fichiers.".
4) Modifiez de nouveau les variables d'environnement :
SetEnv APPLICATION_UPDATE_STEP files
Plus personne ne peut se connecter, et les utilisateurs encore connectés sont redirigés vers une page de maintenance.
5) IMPERATIF : faites une sauvegarde complète de la base de données, conservée hors du serveur.
6) IMPERATIF : faites une sauvegarde complète du dossier /local, conservée hors du serveur.
7) Notez le numéro de révision ancien de Médiacad (affiché en footer de chaque page, ou dans /application/library/Version.php, ligne 30, const REVISION = 'XXX';).
8) Uploadez les nouvelles sources (version de production) sur les serveur (en écrasant les anciens fichiers). Vous devez copier uniquement les dossiers /application, /library et /public, ***PAS LE DOSSIER /LOCAL***.
9) Suivez si disponibles les instructions particulières ci-dessous.
10) Modifiez de nouveau les variables d'environnement :
SetEnv APPLICATION_UPDATE_STEP database
Tout le monde peut à nouveau se connecter, mais seul un sAdmin peut travailler, les autres utilisateurs sont encore redirigés vers la page de maintenance.
11) Connectez-vous avec votre compte de sAdmin. Vous serez automatiquement dirigé vers la page de mise à jour de l'application.
12) Cliquez sur le bouton de mise à jour et patientez... Un message indique que la mise à jour s'est déroulée correctement. Vous devrez éventuellement refaire plusieurs fois la même action si votre installation était ancienne.
13) Repassez les variables d'environnement à leurs valeurs habituelles :
SetEnv APPLICATION_MODE normal
SetEnv APPLICATION_UPDATE_STEP warning
La mise à jour est terminée.
Ces instructions sont complémentaires aux instructions générales. La plupart du temps, les instructions générales suffisent.
Vous devez respecter toutes les instructions ultérieures à la version ancienne de l'application (le numéro que vous avez noté au point 7 ci-dessus).
La nouvelle révision est celle située en dernier de cette liste.
Par exemple, si l'application en était à la révision #180, vous devez suivre toutes les instructions particulières depuis le #181 jusqu'à la fin de la liste.
1) Modifier le virtualhost pour tenir compte des fichiers css et js gzipés :
AddEncoding x-gzip .gz
<FilesMatch ".css.gz$">
ForceType text/css
</FilesMatch>
<FilesMatch ".js.gz$">
ForceType application/javascript
</FilesMatch>
1) Ôter les droits d'écriture pour Apache sur /public/js/. Sur tout le dossier /public, Apache doit avoir uniquement les droits de lecture/exécution, pas de droits d'écriture/suppression.
1) Dans le virtualhost, modifier le path de mod_xsendfile.
Passer de XSendFilePath [...]/media/encoded à XSendFilePath [...]/media
1) Modifier éventuellement le lien de logout de l'ENT dans ['auth']['adapters'][nom_de_l_adaptateur]['logoutUri']. Laisser à NULL si pas de lien.
1) Modifications de la structure de la table maintenancetask (création d'un index PRIMARY).
1) Suppression de la table moderatorviewlog.
2) Suppression des champs isDeleted, deletedDate, isDeletedByModerator, deletedByModeratorName, deletedByModeratorMessage de la table media.
3) Ajout de la config ['media']['toDeleteDuration'] dans application.cfg.array.php.
1) Transfert de /local/config/schoolWhiteList.cfg.array.php vers /local/config/application.cfg.array.php.
1) Changement des cascades de delete sur publicSchoolSubscription.
2) Ajout du champ toApproveDate aux tables academicSubscription, publicSubscription et publicSchoolSubscription.
1) Transfert de /local/config/database.cfg.array.php vers /local/config/application.cfg.array.php.
2) Ajout de la config ['media']['toApproveSubscriptionDuration'] dans application.cfg.array.php.
1) Mise à jour de la config pour l'adaptateur d'authentification password + les tâches de maintenance.
1) Mise à jour de la config pour les nouveaux ACL des webServices + la maintenance + les pages application + help.
1) Mise à jour de la config pour les fonctions autorisées pour le staff lors de l'update d'établissement + encodingErrorDuration.
1) Création des tables pour les statistiques : statisticFile, statisticFileCount, statisticMediaEncode, statisticMediaCount,
statisticMediaView, statisticMediaReport, statisticMediaDelete, statisticSubscriptionRequest, statisticSubscriptionResponse,
statisticQuotaMax, statisticQuotaUsed, statisticSchoolCount, statisticUserCount.
1) Modification de la valeur locale de incrementStepQuota.
1) Mise à jour de la config pour les nouveaux ACL des webServices.
2) Mise à jour de la config : ajout de 'lockIndexDuration', 'statistics', 'schoolYearFirstMonth', 'logFilePath', threads.
1) Ajout du champ threadsCount aux tables encodingtask et statisticfile.
1) Création de la table schoolzone.
2) Modification de la table school (schoolZoneId).
3) Création d'une zone fictive affectée aux établissements existants (contrainte de clef étrangère) + impose une mise à jour des établissements.
4) Modification des types d'établissements (tables school et statisticschoolcount).
5) Modification de la table statisticusercount (activeStudentCount, activeTeacherCount).
1) Modification de la valeur locale de la liste de diffusion.
2) Mise à jour de la config ('isSchoolNeedsToUpdate', 'isAllowedAutoUpdateAllSchools').
3) Mise à jour de la config pour les nouveaux ACL des WS.
1) Modification des COLLATE des label pour les tables tables mediaauthor, mediacollection, mediaproject et mediapublisher.
1) Modification des tables statisticschoolcount et statisticusercount.
1) Ajout de la config 'internalWSBaseUri', 'reportedMediasKeepingDuration'.
1) Modification de la valeur locale de la déclaration CNIL.
1) Ajout de la config 'isDemo'.
1) Ajout de configs dans application.cfg.array.php.
1) Ajout de la config 'useMinify'.
1) Ajout d'un index sur la table school_user.isTeacher.
2) Création de la table staff.
3) Remplissage de la table staff.
1) Suppression des configs 'displayResultCount' et 'maxCountSearchHits'.
1) Ajout de la config 'logoutUri' dans la partie auth.
Créé avec HelpNDoc Personal Edition: Créer de la documentation iPhone facilement