Versionamento de Banco de Dados com Liquibase
Published: 2024-03-15 20:47:51

O Liquibase é uma ferramenta open-source que permite rastrear e controlar as alterações no esquema do seu banco de dados. Ele funciona como um sistema de controle de versão para seu banco de dados.

## Benefícios do Versionamento de Banco de Dados

- **_Rastreabilidade:_** Permite acompanhar todas as alterações feitas no banco de dados, facilitando a identificação de problemas e a reversibilidade de mudanças.

- **_Facilidade de migração:_** Simplifica a migração de alterações para diferentes ambientes, como desenvolvimento, teste e produção.

- **_Colaboração entre times:_** Permite que diferentes desenvolvedores trabalhem no mesmo banco de dados sem conflitos.

- **Segurança e confiabilidade:** Reduz o risco de erros e garante a consistência do banco de dados.

## Para começar a usar o Liquibase, você precisa:

1. **Instalar o Liquibase:** Acesse o site oficial https://www.liquibase.com/community e baixe a versão mais recente para o seu sistema operacional.

2. **Criar um changelog:** O changelog é um arquivo que armazena o histórico de todas as alterações feitas no banco de dados. Você pode criar o changelog manualmente ou usar a ferramenta de linha de comando do Liquibase.
3. **Executar as mudanças:** O Liquibase pode aplicar as mudanças no banco de dados de diversas maneiras, como através da linha de comando, scripts SQL ou ferramentas de integração contínua.

## Bora praticar

Vamos criar uma tabela simples de usuários usando o Liquibase:
1. Crie um arquivo XML chamado "changelog.xml" na pasta do seu projeto e adicione o seguinte código ao arquivo:

```
<databaseChangeLog
  xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.3.xsd">

  <changeSet author="TESTE01" id="1">
    <createTable tableName="usuarios">
      <column name="id" type="integer" autoIncrement="true" primaryKey="true"/>
      <column name="nome" type="varchar(255)"/>
      <column name="email" type="varchar(255)"/>
    </createTable>
  </changeSet>

</databaseChangeLog>
```
2. Executar a mudança:

```
liquibase update
```
O Liquibase irá criar a tabela "usuarios" no banco de dados.

3. Alterar a tabela:

Vamos adicionar uma nova coluna à tabela "usuarios":

```
<changeSet author="TESTE01" id="2">
  <addColumn tableName="usuarios">
    <column name="data_nascimento" type="date"/>
  </addColumn>
</changeSet>
```
4. Executar a mudança:

```
liquibase update
```
O Liquibase irá adicionar a coluna "data_nascimento" à tabela "usuarios".

O Liquibase é uma ferramenta muito interessante quando se trata de versionamento de banco de dados. A ideia deste guia prático é oferecer uma visão inicial de seu funcionamento e possibilitando a manutenção consistente dos bancos de dados em diversos ambientes. Essa abordagem garante a uniformidade estrutural dos bancos de dados, tanto no ambiente de Desenvolvimento quanto no de Homologação, alinhando-os ao ambiente de Produção. Todo este processo, aliado à pipeline, torna a interação entre times ainda mais rápida.

Recursos Adicionais

- Documentação do Liquibase: https://docs.liquibase.com/

- Tutoriais do Liquibase: https://www.youtube.com/watch?v=dTmg8NNcWM4

- Exemplos de Changelogs: https://docs.liquibase.com/start/design-liquibase-project.html