Gerador de migrações de base de dados — diferença de esquemas para SQL de subida / descida
Gerador de migrações de base de dados
Cole o esquema atual à esquerda e o esquema alvo à direita — quer como DDL CREATE TABLE, quer como JSON de esquema do Desenhador ERD — e depois gere um script de avanço (up) e o respetivo script de reversão (down): tabelas novas e eliminadas, colunas acrescentadas, removidas e alteradas, e alterações de chaves estrangeiras, com aspas para MySQL, PostgreSQL, SQL Server, SQLite, Oracle ou SQL padrão. Nada é enviado; a diferença é calculada no seu navegador.
1 — Antes (esquema atual)
2 — Depois (esquema alvo)
3 — Gerar migração
As instruções são agrupadas por tabela; reveja o resultado antes de o executar.
Ainda não foi gerada nenhuma diferença.
Âmbito: esta é uma diferença estrutural de tabelas, colunas, chaves primárias, nulabilidade, valores predefinidos e chaves estrangeiras. Os índices, gatilhos, vistas e preenchimentos de dados estão fora do âmbito e devem ser acrescentados à mão. O SQLite não consegue alterar uma coluna no próprio lugar, pelo que essas alterações são emitidas como um comentário a pedir que recrie a tabela.
O que é uma migração de base de dados?
Uma migração é um script versionado que altera o esquema de uma base de dados: criar esta tabela, acrescentar aquela coluna, eliminar um índice. As equipas aplicam as migrações por ordem para que cada ambiente — desenvolvimento, pré-produção, produção — percorra o mesmo caminho de versão para versão, em vez de ser editado à mão até ficar com uma forma que já não corresponde ao código. Cada migração costuma ter duas metades: up aplica a alteração, down reverte-a, para que uma má versão possa ser revertida da mesma forma como entrou.
As migrações que eliminam tabelas ou colunas são destrutivas — o script de descida não consegue ressuscitar dados eliminados. Faça uma cópia de segurança (ou pelo menos exporte as tabelas afetadas) antes de executar uma migração que remova algo.