Mettre à jour votre instance
La mise à jour de KolleK est conçue pour être sans surprise : récupérer la nouvelle version, reconstruire, terminé. Cette page explique pourquoi c'est sûr, et la seule étape à connaître après une mise à jour.
Pourquoi les mises à jour ne perdent pas de données
Deux propriétés rendent le chemin de mise à jour sûr :
- Vos données vivent dans des volumes nommés (
db-datapour la base de données,storage-datapour les fichiers), indépendants des conteneurs et de l'image. Reconstruire les conteneurs ne les touche pas. - Les migrations n'avancent que dans un sens. Le conteneur web applique les migrations de base de données en attente au démarrage avec
migrate --force, et KolleK ne livre jamais de migration qui réinitialise ou réécrit destructivement des données. Une mise à jour ne fait qu'ajouter à votre schéma.
Mise à jour
Effectuez un export de base de données et une archive du stockage comme décrit dans Sauvegarder et restaurer votre instance. Les mises à jour sont sûres par conception, mais une sauvegarde transforme « sûr par conception » en « sûr, tout court ».
Depuis le répertoire du dépôt, récupérez la version vers laquelle vous mettez à jour :
git pull
docker compose up -d --build
Compose reconstruit l'image et recrée les conteneurs. Au démarrage, le conteneur web applique automatiquement toute nouvelle migration, puis l'instance est de nouveau disponible à l'adresse APP_URL.
Si vous préférez garder les migrations sous contrôle manuel, définissez RUN_MIGRATIONS=false et exécutez vous-même docker compose exec app php artisan migrate --force dans le cadre de la procédure, comme indiqué dans Installer avec Docker.
L'étape de l'index de recherche des photos
Une mise à jour comprend une tâche de maintenance ponctuelle : les instances antérieures à l'écran de la bibliothèque de photos doivent voir leur index de recherche de photos construit une fois, sans quoi la recherche de photos reste vide pour les photos existantes.
docker compose exec app php artisan photos:rebuild-search-index
La commande est idempotente et peut être exécutée sans risque sur n'importe quelle instance, donc en cas de doute, exécutez-la. Elle comble également les dimensions d'image manquantes pour les photos téléversées avant que ces dimensions ne soient enregistrées.
L'étape de l'index de recherche du compte
La recherche à l'échelle du compte lit son propre index. La migration crée la table, mais seule la commande de reconstruction la remplit : sur une instance existante, la recherche ne trouve donc rien tant qu'elle n'a pas été lancée une fois :
docker compose exec app php artisan search:rebuild-index
Elle parcourt chaque fiche de chaque compte, laissez-lui donc un moment sur une grande instance. Ensuite, l'index se tient à jour tout seul au fil des changements. Voyez Chercher dans tout votre compte.
Ne changez pas APP_KEY dans le cadre d'une mise à jour. La clé survit à chaque version. Si un guide de mise à jour semble un jour demander une nouvelle clé, vous le lisez mal. Voyez La clé d'application et le chiffrement.
Et ensuite
- Gardez vos sauvegardes à jour afin que chaque mise à jour parte de l'une d'entre elles.
- Passez en revue Tâches de maintenance planifiées, qui reprennent automatiquement dès que le conteneur scheduler est de nouveau en fonctionnement.