Não é raro que em meio a um projeto apareça a necessidade de fazer uma migração de dados. E quando pensamos na arquitetura de micro-serviços, começar separando os dados por schemas pode ser um primeiro passo para deixar o monolito para trás.
Vamos lá!!
O primeiro passo é criar um novo schema no MySQL, que pode ser feito com o seguinte comando:
CREATE SCHEMA new_schema;
Pronto! Agora já podemos iniciar a migração para o novo schema. A primeira coisa é copiar a estrutura de todas as tabelas que você deseja migrar. Da seguinte forma:
CREATE TABLE new_schema.table_1 LIKE old_schema.table_1;
CREATE TABLE new_schema.table_2 LIKE old_schema.table_2;
CREATE TABLE new_schema.table_3 LIKE old_schema.table_3;
Se fizermos um select agora em uma das tabelas do novo schema, vamos perceber que a tabela está criada exatamente com a mesma estrutura da antiga, porém estão todas vazias.
Então, por fim, vamos fazer a migração dos dados.
INSERT new_schema.table_1 SELECT * FROM old_schema.table_1;
INSERT new_schema.table_2 SELECT * FROM old_schema.table_2;
INSERT new_schema.table_3 SELECT * FROM old_schema.table_3;
Um lembrete. Antes de fazer a cópia dos dados, é importante “desligar” qualquer aplicação que faça operações na base antiga para evitar perda de dados.
Então é isso, seus dados já estão migrados e você já pode começar a usá-los.
Até a próxima!!!