Servidores de Jogos

Migrando dados de SQLite para MySQL

Migrando dados de SQLite para MySQL

Seu servidor cresceu e o SQLite começou a mostrar limites? Migrar para o MySQL é o caminho natural. Veja como fazer sem perder dados.

Antes de começar

  • Backup dos arquivos .db;
  • Um servidor de teste para validar a migração;
  • Uma janela de manutenção anunciada aos jogadores.

1. Diferenças de sintaxe

A maioria do SQL é igual, mas atenção:

SQLite MySQL
INTEGER PRIMARY KEY AUTOINCREMENT INT AUTO_INCREMENT PRIMARY KEY
Tipos flexíveis Tipos rígidos (VARCHAR(n), INT, BIGINT, FLOAT)
INSERT OR REPLACE REPLACE INTO ou INSERT ... ON DUPLICATE KEY UPDATE
INSERT OR IGNORE INSERT IGNORE
last_insert_rowid() LAST_INSERT_ID()

Revise as consultas do seu código procurando essas diferenças.

2. Crie as tabelas no MySQL

Escreva os CREATE TABLE com tipos adequados, índices e utf8mb4.

3. Transfira os dados

Opções:

  • Ferramentas visuais (como DBeaver ou HeidiSQL) que abrem o SQLite e exportam para MySQL;
  • Exportar para CSV/SQL e importar no MySQL;
  • Script de migração no próprio MTA: um resource temporário que conecta aos dois bancos, lê do SQLite e grava no MySQL.

Exemplo simplificado de script de migração:

local sqlite = dbConnect("sqlite", "dados.db")
local mysql = exports.rp_db:getConnection()

local linhas = dbPoll(dbQuery(sqlite, "SELECT usuario, senha_hash, dinheiro FROM contas"), -1)
for _, l in ipairs(linhas) do
    dbExec(mysql, "INSERT INTO contas (usuario, senha_hash, dinheiro) VALUES (?, ?, ?)",
        l.usuario, l.senha_hash, l.dinheiro)
end
outputServerLog("Migradas " .. #linhas .. " contas.")

(Aqui o uso síncrono é aceitável, porque roda uma única vez com o servidor em manutenção.)

4. Atualize o código

  • Troque dbConnect("sqlite", ...) pela conexão MySQL (idealmente um resource central de conexão);
  • Ajuste consultas com sintaxe específica do SQLite.

5. Teste

No servidor de teste:

  • Faça login com contas antigas;
  • Confira saldos, inventários, veículos e casas;
  • Teste criação de contas e compras.

6. Migre em produção

  1. Anuncie a manutenção;
  2. Pare o servidor;
  3. Faça backup final do SQLite;
  4. Rode a migração;
  5. Suba o código atualizado;
  6. Inicie e verifique.

Guarde o arquivo SQLite antigo até ter certeza de que está tudo certo.

Hospede seu servidor com a VittHost

Todos os planos MTASA-BR da VittHost incluem 1 banco MySQL, pronto para receber seus dados. Servidores no Brasil, painel Pterodactyl, proteção DDoS, downloads acelerados por nginx dedicado e teste grátis de 3 dias.

Compartilhar:

Pronto para hospedar seu próximo projeto?

VPS com painel pré-instalado em 1 clique. Ativação imediata.

Ver planos VPS