Database Base de Datos

DatabaseBase de Datos

Firelands uses MySQL 8.0 with three separate databases:

Firelands usa MySQL 8.0 con tres bases de datos separadas:

DatabasesBases de Datos

DatabasePurpose
authAuthentication data, accounts, sessions
charactersCharacter data, inventory, quests
worldGame data, mobs, items, spells, world state
Base de DatosPropósito
authDatos de autenticación, cuentas, sesiones
charactersDatos de personajes, inventario, misiones
worldDatos de juego, mobs, items, hechizos, estado del mundo

Local DevelopmentDesarrollo Local

Start MySQL with Docker:

Iniciar MySQL con Docker:

docker-compose up -d db

Configuration:

  • Image: mysql:8.0
  • Port: 3306
  • Root: root/root
  • User: firelands/firelands
  • Databases: auth, characters, world

Configuración:

  • Imagen: mysql:8.0
  • Puerto: 3306
  • Root: root/root
  • Usuario: firelands/firelands
  • Bases de datos: auth, characters, world

SQL FilesArchivos SQL

  • sql/init/ - Initial schema scripts
  • sql/migrations/ - Migration scripts
  • sql/bundled/ - Bundled schema for distribution
  • sql/init/ - Scripts de esquema inicial
  • sql/migrations/ - Scripts de migraciones
  • sql/bundled/ - Esquema bundled para distribución

Bundled SchemaEsquema Bundled

  • firelands_auth.sql
  • firelands_characters.sql
  • firelands_world.sql
  • zz_seed_schema_migrations.sql
  • firelands_auth.sql
  • firelands_characters.sql
  • firelands_world.sql
  • zz_seed_schema_migrations.sql

Merging MigrationsFusionar Migraciones

Regenerate bundled schema:

python3 tools/merge_migrations.py
# or
cmake --build build --target merge-migrations

Regenerar esquema bundled:

python3 tools/merge_migrations.py
# o
cmake --build build --target merge-migrations

Migrations at RuntimeMigraciones en Tiempo de Ejecución

The DatabaseMigrator applies:

  1. sql/init/*.sql
  2. Optional sql/migrations/*.sql

El DatabaseMigrator aplica:

  1. sql/init/*.sql
  2. Opcional sql/migrations/*.sql