Aller au contenu

Migrations de la base de données

Tu n’importes jamais de SQL à la main. bs_core crée et met à jour le schéma tout seul au démarrage.

  • Les fichiers de migration sont dans bs_core/sql/, numérotés (de 001_core_schema.sql à 035_faction_jobs.sql pour le moment).
  • Au démarrage, bs_core lance dans l’ordre chaque fichier de sa liste qui n’est pas encore enregistré, et l’inscrit dans la table bs_migrations avec un checksum. Un fichier ne tourne jamais deux fois.
  • La console affiche ce qui a été appliqué à ce démarrage.
  • Quelques resources créent leurs propres petites tables avec CREATE TABLE IF NOT EXISTS au démarrage (par exemple bs_tester et bs_config). Rien à faire non plus pour celles-là.
FichierAjoute
029_vehicle_world.sqlVéhicules du monde, pièces manquantes
030_user_language.sqlbs_users.language
031_building.sqlbs_build_pieces, bs_build_bases, déplace les anciennes structures vers les factions
032_crafting.sqlFiles des stations, pièges, remboursements hors ligne, points de recycler
033_medical.sqlbs_character_medical : blessures, infection, maladie, sang
034_base_flags.sqlDrapeaux de zone sûre et d’avant-poste, raids déclarés
035_faction_jobs.sqlMembres des jobs, le tableau, scores, choix de jobs, travail de garage
045_darkzone.sqlDark Zone (1.1.0)
046_building_v2.sqlConstruction v2 : électricité, générateurs, drapeaux (1.1.0)
047_faction_emblems.sqlEmblèmes de faction (1.1.0)
048_backpack_refresh.sqlObjets sac à dos renommés, contenu gardé (1.1.0)
  1. Prends le numéro suivant : bs_core/sql/036_my_change.sql.
  2. Écris-la pour qu’elle soit sûre sur une base qui contient déjà des données. Ajoute des colonnes avec des valeurs par défaut, ne supprime pas ce que les gens utilisent encore.
  3. Ajoute le nom du fichier à la liste dans bs_core/server/sv_migrations.lua (M.files). La liste est codée en dur. Un fichier qui n’y figure pas ne tourne jamais, sans prévenir.
  4. Redémarre le serveur (redémarrer bs_core seul éjecte tout le monde).

Avant une mise à jour qui ajoute des migrations, fais une sauvegarde. Sous Windows :

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

Voir Mise à jour et base de données pour restaurer et déplacer des personnages entre serveurs.