SlideShare une entreprise Scribd logo
1  sur  15
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

Contenu connexe

Tendances

Java enterprise - testcontainers
Java enterprise - testcontainersJava enterprise - testcontainers
Java enterprise - testcontainersSandro 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 testesElias 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 CakePHPMarcelo 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 minutosiMasters
 
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.iotdc-globalcode
 
Introdução ao Asp.NET MVC
Introdução ao Asp.NET MVCIntrodução ao Asp.NET MVC
Introdução ao Asp.NET MVCBenicio Á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 containersElias Nogueira
 
Apresentação maven
Apresentação mavenApresentação maven
Apresentação mavenAndré Justi
 
[Natal Nerd] IT Talks - NET Core
[Natal Nerd] IT Talks - NET Core[Natal Nerd] IT Talks - NET Core
[Natal Nerd] IT Talks - NET CoreJaqueline Ramos
 
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íveisMauricio Fernandes de Castro
 
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 2021Erik 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-2019Renato Groff
 
Liferay com React - Boas práticas
Liferay com React - Boas práticasLiferay com React - Boas práticas
Liferay com React - Boas práticasRicardo 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
 

Tendances (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...
 

Similaire à Flyway banco dados

Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágilClaudia Melo
 
Desenvolvendo uma aplicacao Full Javascript
Desenvolvendo uma aplicacao Full JavascriptDesenvolvendo uma aplicacao Full Javascript
Desenvolvendo uma aplicacao Full JavascriptDenis Vieira
 
Sistemas de Controle de Versão
Sistemas de Controle de VersãoSistemas de Controle de Versão
Sistemas de Controle de VersãoJonathas Silva
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versãoMarcos 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 OpenSourcetdc-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
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
Turbinando seu workflow com cakePHP
Turbinando seu workflow com cakePHPTurbinando seu workflow com cakePHP
Turbinando seu workflow com cakePHPTiago 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 frameworkWende 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-122Bruno 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 ZendThiago Sinésio
 
TDC2011: Arquitetura de Software Enterprise
TDC2011: Arquitetura de Software EnterpriseTDC2011: Arquitetura de Software Enterprise
TDC2011: Arquitetura de Software EnterpriseDr. 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
 

Similaire à Flyway banco dados (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
 

Flyway banco dados

  • 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

Notes de l'éditeur

  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