Pular para o conteúdo

Atualização e base de dados

Nunca importas o schema à mão. O bs_core tem as migrações em bs_core/sql/ (001_core_schema.sql … 048_backpack_refresh.sql), e a lista em bs_core/server/sv_migrations.lua. No arranque corre todos os ficheiros que ainda não estão na tabela bs_migrations e regista-os. As já aplicadas nunca voltam a correr.

Portanto, uma atualização que traga uma tabela nova é só: atualizar os ficheiros, reiniciar. A consola mostra que migração aplicou.

Alguns resources (bs_config, bs_guard, bs_vip, progressão do bs_factions) também criam as suas próprias tabelas no arranque se faltarem. É uma rede de segurança, a migração continua a ser a fonte real.

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

Pede a password e escreve um .sql com data e hora em database-backups/. Usa --single-transaction, não bloqueia nem altera a base de dados em produção.

Fá-lo sempre. As migrações só andam para a frente, não há “down”.

  1. Pára o servidor.
  2. Faz backup (acima).
  3. Substitui os resources alterados. Mantém os teus ficheiros de config editados, ou compara-os com os novos. Chaves novas numa config costumam ser necessárias ao código novo.
  4. Não mexas no server.private.cfg. Vê no server.cfg.example se há linhas ensure novas e adiciona-as ao teu.
  5. Corre tools\Test-Deployment.ps1.
  6. Arranca e vê a consola à procura de linhas vermelhas.

Os teus perfis F1 vivem na base de dados, sobrevivem às atualizações. Uma chave de perfil que já não exista é simplesmente ignorada.

Nunca copies cache/ entre máquinas ou versões, apaga-a se algo parecer estranho depois de uma atualização.

O pacote de release não contém a base de dados, de propósito. Faz backup no antigo e, no novo, cria uma base de dados nova vazia e:

Terminal window
powershell -ExecutionPolicy Bypass -File .\tools\Import-Database.ps1 -Database beyondsurvival -User beyond -BackupFile D:\transfer\beyondsurvival-YYYYMMDD-HHMMSS.sql

Nunca apaga uma base de dados e pede-te que escrevas IMPORT primeiro. Guarda o backup original até o servidor novo ter corrido bem durante algum tempo.

Trata esse ficheiro .sql como privado. Tem todas as personagens, inventários, bancos de fações e identificadores.

O txadmin/recipe.yaml implementa a release mais uma base de dados nova e vazia através do Server Deployer do txAdmin. É um mundo novo, nada da base de dados antiga vem junto. Vê txadmin/README.md para a estrutura do zip.