Migrando de arquivos INI (dini/y_ini) para MySQL
Seu servidor cresceu e a pasta scriptfiles/contas/ tem milhares de arquivos? É hora de migrar para o MySQL. Com planejamento, dá para fazer sem perder nenhuma conta.
1. Mapeie os dados
Abra alguns arquivos e liste todas as chaves:
Senha=...
Dinheiro=15000
Nivel=7
Skin=46
Admin=0
Cada chave vira uma coluna. Arquivos de casas, veículos e facções viram tabelas próprias.
2. Crie as tabelas
Aproveite para melhorar a estrutura: tipos corretos, índices e separação de dados. Veja nosso post sobre estruturar tabelas.
3. Escreva o importador
Duas abordagens:
- Script externo (Python, PHP, Node): lê os arquivos INI e insere no banco. Costuma ser mais rápido e fácil de depurar;
- Filterscript em Pawn: percorre os arquivos e insere via plugin MySQL. Útil se a equipe só conhece Pawn.
Registre as contas que falharem (arquivos corrompidos, valores inválidos) para tratar manualmente.
4. O problema das senhas
Se as senhas estão em texto puro ou em hash fraco (como udb_hash), você não consegue convertê-las para bcrypt diretamente. Opções:
- Migração no login: importe o hash antigo numa coluna separada. Quando o jogador logar com sucesso usando o método antigo, gere o hash novo e apague o antigo;
- Redefinição: peça que todos redefinam a senha (exige outro meio de verificação, como Discord ou e-mail).
A primeira é a mais transparente para os jogadores.
5. Adapte o gamemode
Substitua leituras e escritas de INI por consultas MySQL assíncronas (mysql_tquery). Aproveite para centralizar o salvamento numa função só.
6. Teste com uma cópia
- Rode o importador numa cópia dos arquivos;
- Compare amostras: dinheiro, nível, casas;
- Teste login, registro e salvamento no servidor de testes.
7. A virada
- Anuncie a manutenção;
- Desligue o servidor (nenhuma alteração durante a importação);
- Faça backup dos arquivos INI;
- Rode o importador final;
- Suba o gamemode novo e acompanhe os logs.
Mantenha os arquivos antigos guardados por um tempo, por segurança.
Hospede seu servidor com a VittHost
Os planos OPENMP-BR da VittHost incluem MySQL, prontos para receber seus dados migrados. Servidores no Brasil, painel Pterodactyl, proteção DDoS, compatibilidade total com scripts SA-MP e teste grátis de 3 dias.