Gerar change log automaticamente, ao limpar e construir o projeto sem afetar a compatibilidade com SGBD

Estou trabalhando em um projeto multi banco (SQLServer, Mysql, Oracle).

Para que ele seja compatível com vários SGBD, a estrutura do banco é criada a partir de um changelog do Liquibase.

O problema é que sempre que um modelo é alterado (e consequentemente uma tabela) é necessário alterar os changelogs. Isso está se torando meio trabalhoso, pois trabalho com uma equipe muito grande.

Haveria uma forma de gerar os changelogs automaticamente, e ainda assim continuar compatível com os SGBDs?

Exemplo de um change log que estou usando.

<databaseChangeLog <changeSet author="usuario" id="1"> <createTable tableName="USUARIOS"> <column name="ID" type="BIGINT" autoIncrement="${autoIncrement}"> <constraints primaryKey="true" primaryKeyName="USUARIOS_PK" nullable="false"/> </column> </changeSet> <changeSet author="usuario" id="2" dbms="${dbmsSequence}"> <createSequence sequenceName="SEQ_CLIENTE"/> </changeSet> </databaseChangeLog>

A ideia de se versionar um banco… usando o liquibase por exemplo … é sempre gerar novos changelog a cada alteração uma vez que as alterações existentes já foram para produção.

Acredito que está rolando uma inversão de conceitos ai ao voltar e alterar changelogs que já foram executados.

Se você criou a tabela A na versao 1.0
E agora precisa adicionar mais uma coluna… você não altera o script da versão 1.0 … você cria o script 1.1 …

:wink: