Aller au contenu

Mise à jour et base de données

Tu n’importes jamais le schéma à la main. bs_core a les migrations dans bs_core/sql/ (001_core_schema.sql … 048_backpack_refresh.sql) et la liste dans bs_core/server/sv_migrations.lua. Au démarrage, il exécute chaque fichier qui n’est pas encore dans la table bs_migrations et l’enregistre. Celles déjà appliquées ne repassent jamais.

Une mise à jour qui apporte une nouvelle table, c’est donc juste : mettre à jour les fichiers, redémarrer. La console affiche quelle migration a été appliquée.

Certaines resources (bs_config, bs_guard, bs_vip, progression de bs_factions) créent aussi leurs propres tables au démarrage si elles manquent. C’est un filet de sécurité, la migration reste la vraie source.

Fenêtre de terminal
powershell -ExecutionPolicy Bypass -File .\tools\Backup-Database.ps1 -Database beyondsurvival -User beyond

Il demande le mot de passe et écrit un .sql horodaté dans database-backups/. Il utilise --single-transaction, il ne verrouille ni ne modifie la base en production.

Fais-le à chaque fois. Les migrations ne vont que vers l’avant, il n’y a pas de “down”.

  1. Arrête le serveur.
  2. Sauvegarde (ci-dessus).
  3. Remplace les resources modifiées. Garde tes fichiers de config édités, ou compare-les avec les nouveaux. Les nouvelles clés d’une config sont en général nécessaires au nouveau code.
  4. Ne touche pas à server.private.cfg. Regarde server.cfg.example pour de nouvelles lignes ensure et ajoute-les aux tiennes.
  5. Lance tools\Test-Deployment.ps1.
  6. Démarre et surveille la console pour les lignes rouges.

Tes profils F1 vivent dans la base de données, ils survivent aux mises à jour. Une clé de profil qui n’existe plus est simplement ignorée.

Ne copie jamais cache/ entre machines ou versions, supprime-le si quelque chose paraît bizarre après une mise à jour.

Le paquet de release ne contient pas la base de données, volontairement. Sauvegarde sur l’ancien, puis sur le nouveau crée une nouvelle base vide et :

Fenêtre de terminal
powershell -ExecutionPolicy Bypass -File .\tools\Import-Database.ps1 -Database beyondsurvival -User beyond -BackupFile D:\transfer\beyondsurvival-YYYYMMDD-HHMMSS.sql

Il ne supprime jamais une base de données et te demande de taper IMPORT d’abord. Garde la sauvegarde d’origine jusqu’à ce que le nouveau serveur ait bien tourné un moment.

Traite ce fichier .sql comme privé. Il contient chaque personnage, inventaire, banque de faction et identifiant.

txadmin/recipe.yaml déploie la release plus une nouvelle base vide via le Server Deployer de txAdmin. C’est un nouveau monde, rien de l’ancienne base ne suit. Voir txadmin/README.md pour la structure du zip.