SlideShare uma empresa Scribd logo
Evoluindo Bancos de Dados 
com Flyway 
E uma alternativa ao uso do banco de dados 
centralizado.
O que é o Flyway? 
•Ferramenta de migração de banco de dados 
•Integra-se com Maven, Ant, Gradle, etc. 
•Funciona com os scripts SQL existentes 
•Compatível com vários BDs 
•Possui Java API 
•Disponível para Android 
•Open source (https://github.com/flyway/flyway)
Motivação 
•Mudanças constantes no banco de dados. 
•Interrupção do desenvolvimento por mudanças no BD. 
•Scripts SQL se perdiam até chegar em produção. 
•Versionamento e ordenação dos scripts. 
•Constante recriação manual do banco de dados em ambientes diferentes 
(desenv, test, etc). 
•Desenvolvedores utilizando registros de outros.
Como o Flyway resolve estes problemas? 
•Scripts passam a ficar na pasta "código" ao invés de "documentos" no SCM. 
•Flyway se encarrega de recriar ou atualizar o banco de dados. 
•Desenvolvedores devem criar o script de mudança na ordem correta. 
•Viabiliza a utilização de um banco por desenvolvedor. 
•Viabiliza a entrega contínua.
Como funciona
Como funciona
Como funciona
Como funciona
Como funciona
Configurando o projeto
Programação por Convenção 
Formatos aceitos: 
•1 
•001 
•5.2 
•5_2 (5.2 at runtime) 
•1.2.3.4.5.6.7.8.9 
•205.68 
•20130115113556 
•2013.1.15.11.35.56 
•2013.01.15.11.35.56
Exemplo de script SQL 
V2014.07.02_211022__cria_tabela_de_usuarios.sql
Executando o Flyway
Alternativa ao banco de dados centralizado 
•Cada desenvolvedor com seu banco de dados. 
•Scripts são validados em vários ambientes antes de ir para homologação e 
produção. 
•Mudanças no banco não afetam a equipe inteira. 
•Desenvolvedores poderão mudar de branch ou versão sem necessidade de 
uma solicitação de criação de banco de dados. 
•Problemas de rede e conexão não afetarão mais o desenvolvimento. 
•Viabiliza o home office! ;D
Dúvidas? 
Vitor Albuquerque 
vitor.rcca@gmail.com 
@vrcca

Mais conteúdo relacionado

Mais procurados

Apresentação maven
Apresentação mavenApresentação maven
Apresentação maven
Victor Gouveia
 
Java enterprise - testcontainers
Java enterprise - testcontainersJava enterprise - testcontainers
Java enterprise - testcontainers
Sandro Giacomozzi
 
Usando containers com auto-escala de testes
Usando containers com auto-escala de testesUsando containers com auto-escala de testes
Usando containers com auto-escala de testes
Elias Nogueira
 
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - .....NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....
Renato Groff
 
Desenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPDesenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHP
Marcelo Andrade
 
Maven e Nexus. O que são essas ferramentas?
Maven e Nexus. O que são essas ferramentas?Maven e Nexus. O que são essas ferramentas?
Maven e Nexus. O que são essas ferramentas?
Jocsa Rosendo
 
7Masters - Devops - Do legado ao ci cd em 7 minutos
7Masters - Devops - Do legado ao ci cd em 7 minutos7Masters - Devops - Do legado ao ci cd em 7 minutos
7Masters - Devops - Do legado ao ci cd em 7 minutos
iMasters
 
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.ioTDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io
tdc-globalcode
 
Introdução ao Asp.NET MVC
Introdução ao Asp.NET MVCIntrodução ao Asp.NET MVC
Introdução ao Asp.NET MVC
Benicio Ávila
 
Como criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containersComo criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containers
Elias Nogueira
 
Apresentação maven
Apresentação mavenApresentação maven
Apresentação maven
André Justi
 
[Natal Nerd] IT Talks - NET Core
[Natal Nerd] IT Talks - NET Core[Natal Nerd] IT Talks - NET Core
[Natal Nerd] IT Talks - NET Core
Jaqueline Ramos
 
Hubot deployments
Hubot deploymentsHubot deployments
Hubot deployments
Fernando Nogueira
 
Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...
William Melchior Jablonski, CTFL
 
Apresentação do Aplicativo de Controle de Combustíveis
Apresentação do Aplicativo de Controle de CombustíveisApresentação do Aplicativo de Controle de Combustíveis
Apresentação do Aplicativo de Controle de Combustíveis
Mauricio Fernandes de Castro
 
Cake PHP
Cake PHPCake PHP
Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021
Erik Cruz
 
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
Renato Groff
 
Liferay com React - Boas práticas
Liferay com React - Boas práticasLiferay com React - Boas práticas
Liferay com React - Boas práticas
Ricardo Monteiro
 
Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...
William Melchior Jablonski, CTFL
 

Mais procurados (20)

Apresentação maven
Apresentação mavenApresentação maven
Apresentação maven
 
Java enterprise - testcontainers
Java enterprise - testcontainersJava enterprise - testcontainers
Java enterprise - testcontainers
 
Usando containers com auto-escala de testes
Usando containers com auto-escala de testesUsando containers com auto-escala de testes
Usando containers com auto-escala de testes
 
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - .....NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....
 
Desenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPDesenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHP
 
Maven e Nexus. O que são essas ferramentas?
Maven e Nexus. O que são essas ferramentas?Maven e Nexus. O que são essas ferramentas?
Maven e Nexus. O que são essas ferramentas?
 
7Masters - Devops - Do legado ao ci cd em 7 minutos
7Masters - Devops - Do legado ao ci cd em 7 minutos7Masters - Devops - Do legado ao ci cd em 7 minutos
7Masters - Devops - Do legado ao ci cd em 7 minutos
 
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.ioTDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io
 
Introdução ao Asp.NET MVC
Introdução ao Asp.NET MVCIntrodução ao Asp.NET MVC
Introdução ao Asp.NET MVC
 
Como criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containersComo criar e executar testes paralelos web usando Selenium e containers
Como criar e executar testes paralelos web usando Selenium e containers
 
Apresentação maven
Apresentação mavenApresentação maven
Apresentação maven
 
[Natal Nerd] IT Talks - NET Core
[Natal Nerd] IT Talks - NET Core[Natal Nerd] IT Talks - NET Core
[Natal Nerd] IT Talks - NET Core
 
Hubot deployments
Hubot deploymentsHubot deployments
Hubot deployments
 
Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...
 
Apresentação do Aplicativo de Controle de Combustíveis
Apresentação do Aplicativo de Controle de CombustíveisApresentação do Aplicativo de Controle de Combustíveis
Apresentação do Aplicativo de Controle de Combustíveis
 
Cake PHP
Cake PHPCake PHP
Cake PHP
 
Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021
 
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
Boas práticas na implementação de APIs REST com ASP.NET Core - Agosto-2019
 
Liferay com React - Boas práticas
Liferay com React - Boas práticasLiferay com React - Boas práticas
Liferay com React - Boas práticas
 
Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...
 

Semelhante a Evoluindo bancos de dados com flyway

Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágil
Claudia Melo
 
Desenvolvendo uma aplicacao Full Javascript
Desenvolvendo uma aplicacao Full JavascriptDesenvolvendo uma aplicacao Full Javascript
Desenvolvendo uma aplicacao Full Javascript
Denis Vieira
 
Sistemas de Controle de Versão
Sistemas de Controle de VersãoSistemas de Controle de Versão
Sistemas de Controle de Versão
Jonathas Silva
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versão
Marcos Pessoa
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSource
tdc-globalcode
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
Valmir Justo
 
Web Tools Pt Br
Web Tools Pt BrWeb Tools Pt Br
Web Tools Pt Br
Paulo Mattos
 
Web tools pt-br
Web tools pt-brWeb tools pt-br
Web tools pt-br
Paulo Mattos
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
pichiliani
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
pichiliani
 
Svn - grupo de estudos sol7
Svn - grupo de estudos sol7Svn - grupo de estudos sol7
Svn - grupo de estudos sol7
SOL7 - Tecnologia de Decisão
 
Turbinando seu workflow com cakePHP
Turbinando seu workflow com cakePHPTurbinando seu workflow com cakePHP
Turbinando seu workflow com cakePHP
Tiago Matos
 
Uma breve introdução de play framework
Uma breve introdução de play frameworkUma breve introdução de play framework
Uma breve introdução de play framework
Wende Mendes
 
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
Bruno Souza
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Thiago Sinésio
 
Front end architecture
Front end architectureFront end architecture
Front end architecture
Rafael Salerno de Oliveira
 
TDC2011: Arquitetura de Software Enterprise
TDC2011: Arquitetura de Software EnterpriseTDC2011: Arquitetura de Software Enterprise
TDC2011: Arquitetura de Software Enterprise
Dr. Spock
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.
Filipe Morelli
 
Netbeans
NetbeansNetbeans
Netbeans
armeniocardoso
 
Csharp
CsharpCsharp

Semelhante a Evoluindo bancos de dados com flyway (20)

Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágil
 
Desenvolvendo uma aplicacao Full Javascript
Desenvolvendo uma aplicacao Full JavascriptDesenvolvendo uma aplicacao Full Javascript
Desenvolvendo uma aplicacao Full Javascript
 
Sistemas de Controle de Versão
Sistemas de Controle de VersãoSistemas de Controle de Versão
Sistemas de Controle de Versão
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versão
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSource
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 
Web Tools Pt Br
Web Tools Pt BrWeb Tools Pt Br
Web Tools Pt Br
 
Web tools pt-br
Web tools pt-brWeb tools pt-br
Web tools pt-br
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Svn - grupo de estudos sol7
Svn - grupo de estudos sol7Svn - grupo de estudos sol7
Svn - grupo de estudos sol7
 
Turbinando seu workflow com cakePHP
Turbinando seu workflow com cakePHPTurbinando seu workflow com cakePHP
Turbinando seu workflow com cakePHP
 
Uma breve introdução de play framework
Uma breve introdução de play frameworkUma breve introdução de play framework
Uma breve introdução de play framework
 
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
 
Front end architecture
Front end architectureFront end architecture
Front end architecture
 
TDC2011: Arquitetura de Software Enterprise
TDC2011: Arquitetura de Software EnterpriseTDC2011: Arquitetura de Software Enterprise
TDC2011: Arquitetura de Software Enterprise
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.
 
Netbeans
NetbeansNetbeans
Netbeans
 
Csharp
CsharpCsharp
Csharp
 

Evoluindo bancos de dados com flyway

  • 1. Evoluindo Bancos de Dados com Flyway E uma alternativa ao uso do banco de dados centralizado.
  • 2. O que é o Flyway? •Ferramenta de migração de banco de dados •Integra-se com Maven, Ant, Gradle, etc. •Funciona com os scripts SQL existentes •Compatível com vários BDs •Possui Java API •Disponível para Android •Open source (https://github.com/flyway/flyway)
  • 3. Motivação •Mudanças constantes no banco de dados. •Interrupção do desenvolvimento por mudanças no BD. •Scripts SQL se perdiam até chegar em produção. •Versionamento e ordenação dos scripts. •Constante recriação manual do banco de dados em ambientes diferentes (desenv, test, etc). •Desenvolvedores utilizando registros de outros.
  • 4. Como o Flyway resolve estes problemas? •Scripts passam a ficar na pasta "código" ao invés de "documentos" no SCM. •Flyway se encarrega de recriar ou atualizar o banco de dados. •Desenvolvedores devem criar o script de mudança na ordem correta. •Viabiliza a utilização de um banco por desenvolvedor. •Viabiliza a entrega contínua.
  • 11. Programação por Convenção Formatos aceitos: •1 •001 •5.2 •5_2 (5.2 at runtime) •1.2.3.4.5.6.7.8.9 •205.68 •20130115113556 •2013.1.15.11.35.56 •2013.01.15.11.35.56
  • 12. Exemplo de script SQL V2014.07.02_211022__cria_tabela_de_usuarios.sql
  • 14. Alternativa ao banco de dados centralizado •Cada desenvolvedor com seu banco de dados. •Scripts são validados em vários ambientes antes de ir para homologação e produção. •Mudanças no banco não afetam a equipe inteira. •Desenvolvedores poderão mudar de branch ou versão sem necessidade de uma solicitação de criação de banco de dados. •Problemas de rede e conexão não afetarão mais o desenvolvimento. •Viabiliza o home office! ;D
  • 15. Dúvidas? Vitor Albuquerque vitor.rcca@gmail.com @vrcca

Notas do Editor

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15