- Meu ambiente de desenvolvimento tem XAMPP, o que significa que tenho o MariaDB instalado.
- A produção tem o MySQL 8 instalado.
Quando transfiro novas alterações de esquema do MariaDB para o MySQL, funciona na maior parte do tempo. Às vezes, tenho que mexer.
Mas meu principal problema é quando faço backup do esquema e dos dados do MySQL e tento restaurá-los para meu PC, bem, desisti. Isso requer muitas alterações. Muitos problemas estão relacionados a conjuntos de caracteres.
Há algo que eu possa fazer para tornar o #2 mais fácil? Talvez algumas regras sobre o que evitar no MySQL.
Sim, se você puder usar
mariadb-dump
o MariaDBmysqldump
para fazer backup do esquema do MySQL em vez do MySQLmysqldump
, então você poderá importar esse arquivo dump/SQL para o MariaDB.mariadb-dump
/mysqldump
pode ser executado em um host remoto, então você não precisa instalá-lo no próprio servidor de banco de dados, embora você precise ter acesso remoto à porta 3306 (ou qualquer outra porta em que o MySQL seja executado).O XAMPP parece ainda ter uma versão antiga do MariaDB (10.4), então o utilitário ainda é chamado de
mysqldump
.Não tenho Windows, mas baixei o arquivo zip do XAMPP para Windows e, com base nisso, acho que um comando de despejo seria algo como:
Ajuste conforme necessário.
(Se o
mysqldump
que vem com a versão atual do XAMPP não funcionar com seu servidor MySQL 8.0, você pode tentar instalar uma versão mais recente do servidor MariaDB (por exemplo, 10.11 ou 11.4) localmente em sua máquina Windows e usá-lomariadb-dump
. Curiosamente, consegui despejar com sucesso o banco de dados MySQL "sakila" de um servidor MySQL 8.0.41 usandomariadb-dump
o MariaDB 10.11, embora isso tenha sido no Linux.)Outras soluções potenciais que podem funcionar seriam tentar usar
mysqldump
uma versão mais antiga do MySQL, como 5.7 ou até 5.6. Ou tentar usar o recurso de backup em uma ferramenta como HeidiSQL.Seguindo a sugestão de @Akina, decidi tentar usar o MAMP em vez do XAMPP.
Acredito que a longo prazo isso será melhor.
Eu tive que fazer uma conversão. Vou escrever um script para fazer isso.
-- De:
-- Para: