Banco de Dados Evolutivo – Parte 9

Neste post da série Banco de Dados Evolutivo você aprenderá mais sobre as refatorações no Liquibase e saberá como realizar uma bundled change addColumn.


O Liquibase suporta inúmeros tipos de refatorações em bancos de dados diversos. Estas chamam-se Bundled Changes (Pacote de Mudanças). Você terá acesso a todas elas acessando o seguinte link. Quando você se deparar com uma mudança DDL ou DML que não seja contemplada por seus comandos, existe uma refatoração chamada SQL que permite receber qualquer comando de alteração de banco de dados. Mas você precisa tomar cuidado se em seu ambiente você estiver trabalhando com bancos de dados distintos. Tente sempre usar queryes em padrão ANSI.

Falaremos agora de algumas das refatorações possíveis no Liquibase e faremos também algumas mudanças em nosso ambiente de homologação da Adventure Works. Vamos começar adicionando uma nova coluna para armazenar os dados de CPF na tabela Person.Person. Usaremos, para isso, a refatoração chamada addColumn. Será necessário criarmos um arquivo XML de nome changelog_2.xml usando o código da Listagem 1 e colocá-lo dentro da pasta Versao_1.0.

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

 <changeSet author="arthur" id="add coluna Cpf">
     <addColumn tableName="Person"
               schemaName="Person">
         <column name="Cpf" type="varchar(11)"/>
     </addColumn>
 </changeSet>

 </databaseChangeLog>

Listagem 1. Comando usado dentro do arquivo changelog_2.xml para adicionar à tabela Person.Person a coluna Cpf.

Agora vamos substituir dentro do arquivo master_1.0.xml a tag de inclusão da refatoração changelog_1.xml pela tag contendo o arquivo changelog_2.xml (não queremos recriar a tabela teste_liquibase em nossa base de dados de homologação). Após as alterações, o arquivo master_1.0.xml ficará igual à Listagem 2.

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

 <include file="C:/changelog/versao_1.0/changelog_2.xml" />

 </databaseChangeLog>

Listagem 2. Comando usado dentro do arquivo master_1.0.xml para substituir a tag relacionada ao arquivo changelog_1 pela relacionada ao XML changelog_2.

Agora basta abrir o cmd, acessar a pasta raiz de sistema e executar o comando da Listagem 3 (o mesmo usado para criar a tabela teste_liquibase na Parte 7 da série).

java -jar C:\liquibase-3.0.8-bin\liquibase.jar --defaultsFile=C:\liquibase-3.0.8-bin\liquibaseHomolog.properties update

Listagem 3. Comando usado no cmd para execução do comando UPDATE através do Liquibase.

Captura de Tela 2015-07-03 às 1.22.36 AM
Figura 1. Coluna Cpf criada na tabela Person.Person na base AdventureWorks_Homolog.

 

Se você alterou e criou tudo corretamente, sua tabela Person.Person da base de dados de Homologação ficará conforme a Figura 1.

 

 


Nos próximos posts da série você aprenderá duas novas Bundled Changes: a AddNotNullConstraint e mergeColumns.

Anúncios

5 comentários sobre “Banco de Dados Evolutivo – Parte 9

  1. Anderson Souza

    Parabéns compartilhar algo que certamente ajudará a muitos. Estou seguindo cada post e aplicando para depois de amadurecido trocar uma ideia com o Coordenador da area de projetos e montarmos um piloto com esse metodologia. Abs

    Curtido por 1 pessoa

    1. Anderson, obrigado por estar acompanhando e por me parabenizar!

      Por esse e outros motivos é que vale a pena trabalharmos, estudarmos e nos empenharmos!

      Muito empolgante e satisfatório saber que estou ajudando!

      Grande abraço! 😀

      Curtir

  2. Pingback: Banco de Dados Evolutivo – Parte 10 | Arthur Luz | Data's Light

  3. Pingback: Banco de Dados Evolutivo – Parte 13 | Arthur Luz | Data's Light

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s