Salta ai contenuti

Migrazioni del database

Non importi mai SQL a mano. bs_core crea e aggiorna lo schema da solo all’avvio.

  • I file di migrazione sono in bs_core/sql/, numerati (da 001_core_schema.sql a 035_faction_jobs.sql al momento).
  • All’avvio bs_core esegue in ordine ogni file della sua lista che non è ancora registrato e lo annota nella tabella bs_migrations con un checksum. Un file non gira mai due volte.
  • La console stampa cosa ha applicato in quell’avvio.
  • Alcune resource creano le proprie piccole tabelle con CREATE TABLE IF NOT EXISTS all’avvio (per esempio bs_tester e bs_config). Anche per quelle non c’è niente da fare.
FileAggiunge
029_vehicle_world.sqlVeicoli del mondo, pezzi mancanti
030_user_language.sqlbs_users.language
031_building.sqlbs_build_pieces, bs_build_bases, sposta le vecchie strutture alle fazioni
032_crafting.sqlCode delle stazioni, trappole, rimborsi offline, punti del recycler
033_medical.sqlbs_character_medical: ferite, infezione, malattia, sangue
034_base_flags.sqlBandiere di zona sicura e di avamposto, raid dichiarati
035_faction_jobs.sqlMembri dei lavori, la bacheca, punteggi, scelte di lavoro, lavoro d’officina
045_darkzone.sqlDark Zone (1.1.0)
046_building_v2.sqlCostruzione v2: energia, generatori, bandiere (1.1.0)
047_faction_emblems.sqlEmblemi di fazione (1.1.0)
048_backpack_refresh.sqlOggetti zaino rinominati, contenuto conservato (1.1.0)
  1. Prendi il numero successivo: bs_core/sql/036_my_change.sql.
  2. Scrivila in modo che sia sicura su un database che ha già dati. Aggiungi colonne con valori predefiniti, non eliminare cose che la gente usa ancora.
  3. Aggiungi il nome del file alla lista in bs_core/server/sv_migrations.lua (M.files). La lista è fissa nel codice. Un file che non c’è non viene mai eseguito, senza avvisare.
  4. Riavvia il server (riavviare solo bs_core butta fuori tutti).

Prima di un aggiornamento che aggiunge migrazioni, fai un backup. Su Windows:

Terminal window
powershell -ExecutionPolicy Bypass -File .\tools\Backup-Database.ps1

Vedi Aggiornare e database per ripristinare e spostare i personaggi tra server.