> For the complete documentation index, see [llms.txt](https://realisticnode.gitbook.io/rnsetups/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://realisticnode.gitbook.io/rnsetups/es/rnchatgames/reference/database.md).

# Base de datos (SQLite / MySQL)

La base de datos guarda los puntos, las victorias por juego, los mejores tiempos, los récords, las rachas, el historial de victorias y los premios de los jugadores que se salieron.

## SQLite (por defecto)

Un solo archivo, `data/database.db`, sin configurar nada. Lo mejor para un único servidor.

## MySQL / MariaDB

Para compartir las estadísticas entre varios servidores:

```yaml
storage:
  type: MYSQL
  table-prefix: rncg_        # inicio del nombre de cada tabla
  mysql:
    host: localhost
    port: 3306
    database: minecraft
    username: root
    password: ''
    properties: useSSL=false&characterEncoding=utf8
    pool-size: 5
```

{% hint style="warning" %}
Cambiar `storage` requiere **reiniciar el servidor**. Mira la consola: `Connected to the MySQL database.`
{% endhint %}

## Pasar las estadísticas de SQLite a MySQL

MySQL empieza vacío. Para traer las estadísticas que tenías en SQLite:

1. Pon `type: MYSQL`, rellena la sección `mysql` y reinicia.
2. Usa `/rncg import sqlite`: muestra lo que tienen SQLite y MySQL, sin cambiar nada.
3. Usa `/rncg import sqlite confirm` para copiarlo todo (jugadores, estadísticas por juego, récords, historial, racha y premios pendientes).

Si MySQL ya tiene datos, se **reemplazan** por los de SQLite (se avisa antes). La copia se hace de una vez: si algo falla, MySQL queda como estaba. Los jugadores conectados ven sus estadísticas importadas al momento.

## Modo online y offline

Un jugador tiene un UUID distinto en un servidor con modo online y en uno offline. Si un servidor cambia entre los dos, el mismo jugador aparecería dos veces en las clasificaciones. rnChatGames los junta solo la próxima vez que el jugador entra: suma los puntos y victorias, conserva los mejores tiempos y rachas y pasa el historial al UUID actual.

Solo pasa cuando seguro es la misma persona (uno de los dos registros tiene un UUID de modo offline). Nunca se juntan dos cuentas premium que tuvieron el mismo nombre.

## Copias de seguridad

* SQLite: apaga el servidor y copia `data/database.db` (o copia juntos `database.db`, `database.db-wal` y `database.db-shm`).
* MySQL: usa las copias de seguridad de tu proveedor de base de datos.
