Title: Desenvolvimento de Software / Flyway
Tags: Desenvolvimento_de_Software Resumo
On every note of this deck, unless a note says otherwise:
tldr: - Flyway é uma biblioteca Java para versionamento e migrações de banco de dados, funcionando como uma “linha do tempo” das mudanças para manter consistência entre ambientes (dev/homolog/prod).
- Migration = alterações incrementais no schema/dados (criar tabelas, colunas, índices etc.) registradas em scripts para evolução controlada, sequencial e reproduzível.
- O Flyway executa o fluxo: detectar migrations pendentes → validar (incl. checksum) → aplicar em ordem e registrar histórico.
- Arquitetura baseada em 3 pilares:
- Arquivos de migração: scripts SQL (mais comum, com convenção tipo V1__desc.sql) ou Java (para lógicas mais complexas); suporte a placeholders e callbacks.
- Tabela de controle flyway_schema_history: guarda o histórico (versão, descrição, tipo, script, checksum, data, sucesso etc.), ajudando em auditoria, integridade e detecção de conflitos.
- Executor de migrations: compara arquivos vs. histórico, ordena, impede inconsistências (ex.: versões duplicadas), valida e executa.
- Tipos de migration:
- Versionadas (V...): executam uma vez.
- Repetíveis (R...): reexecutam quando o conteúdo muda (úteis para views/procedures/funções).
- Configuração típica (via flyway.conf ou código): flyway.url, flyway.user/password, flyway.locations; placeholders via flyway.placeholders.*; opções como flyway.group e flags de tolerância/ignorar.
- CLI inclui comandos principais: migrate, validate, info, baseline, repair, clean (e outros; undo apenas na edição Pro).
link: https://documentacao.online/estudos/6ot3.html

front: (FCC/TRT 19/2022) Flyway é uma biblioteca de migração de banco de dados que usa uma tabela para rastrear o estado do banco de dados, cujo nome padrão é
a) flyway_ledger_history.
b) flyway_schema_history.
c) flw_history.
d) flyway_state_history.
e) flw_database_history.
response: Alternativa B
comment: Como vimos, o nome da tabela é “flway_schema_history”. (Gabarito: Letra B)
title: Flyway
Other fields (not shown on cards):
back: Alternativa B - Como vimos, o nome da tabela é “flway_schema_history”. (Gabarito: Letra B)

front: (FGV/Pref. Niterói/2023) Num ambiente Flyway, a linha de comando (command line) permite, dentre outros, o uso dos comandos:
a) Apply, Check, Include;
b) Baseline, Clean, Migrate;
c) Clear, Define, Exec;
d) Info, Quit, Start;
e) Load, Schema, View.
response: Alternativa B
comment: Vou demarcar, em cada alternativa, aqueles comandos que não fazem parte do Flyway. a) Apply, Check, Include; b) Baseline, Clean, Migrate; c) Clear, Define, Exec; d) Info, Quit, Start; e) Load, Schema, View. Portanto, correta a letra B. (Gabarito: Letra B)
title: Flyway
Other fields (not shown on cards):
back: Alternativa B - Vou demarcar, em cada alternativa, aqueles comandos que não fazem parte do Flyway. a) Apply, Check, Include; b) Baseline, Clean, Migrate; c) Clear, Define, Exec; d) Info, Quit, Start; e) Load, Schema, View. Portanto, correta a letra B. (Gabarito: Letra B)

front: (FUMARC/TRT 3/2022 – Adaptada) Julgue a afirmativa abaixo sobre as tecnologias utilizadas na Arquitetura de Desenvolvimento da Plataforma Digital do Poder Judiciário (PDPJ-Br). Flyway é uma ferramenta para organização de scripts SQL que são executados no banco de dados, funcionando como um controle de versão do mesmo.
response: Certo
comment: O item está correto! O Flyay é um framework de migration e versionamento, funcionando com scripts Java ou SQL, executados no banco de dados, aplicando alterações à estrutura do modelo e mantendo-o atualizado.
title: Flyway
Other fields (not shown on cards):
back: Certo - O item está correto! O Flyay é um framework de migration e versionamento, funcionando com scripts Java ou SQL, executados no banco de dados, aplicando alterações à estrutura do modelo e mantendo-o atualizado.

front: (IBFC/2024/TRF 5) Os frameworks e bibliotecas que são disponibilizados para serem utilizados junto as linguagens de programação crescem constantemente, e tendo uma grande adoção pelos desenvolvedores, garantindo maior produtividade, organização e diversos outros benefícios, desta forma, a biblioteca Flyway no contexto de desenvolvimento de aplicações Java é uma ferramenta de controle de:
a) versão de documentos gerados por editores de texto, exclusivamente para o editor Visual Studio Code
b) versão para APIs, que permite aos desenvolvedores gerenciar a evolução de seus hardwares de forma automatizada e controlada
c) versão para bancos de dados, que permite aos desenvolvedores gerenciar a evolução de seus esquemas de banco de dados de forma automatizada e controlada
d) controle de colaboradores do time de desenvolvimento, com relação a suas entregas em cada uma das sprints
response: Letra C
comment: O Flyway é uma ferramenta de migration e versionamento de bancos de dados, aplicando alterações e outras interações com os bancos de dados a partir de scripts (SQL ou Java). Nesse sentido, a alternativa que comporta a resposta correta é a letra C.
title: Flyway
Other fields (not shown on cards):
back: Letra C - O Flyway é uma ferramenta de migration e versionamento de bancos de dados, aplicando alterações e outras interações com os bancos de dados a partir de scripts (SQL ou Java). Nesse sentido, a alternativa que comporta a resposta correta é a letra C.

front: (Inédita/Prof. ) Acerca dos conhecimentos sobre a ferramenta Flyway, julgue o item subsecutivo. A tabela flyway_schema_history, criada automaticamente pelo Flyway, permite que o Flyway execute o rollback automático de migrations caso uma falha seja detectada durante a execução.
response: Errado
comment: O Flyway não suporta rollback automático das migrations em sua versão Community. Caso uma migration falhe, o Flyway interrompe o processo, mas ele não desfaz automaticamente as migrations aplicadas até o ponto de falha. Para reverter uma migration, seria necessário criar uma migration específica de "correção" ou utilizar a edição Pro, que oferece o comando undo para reversão controlada de migrations.
title: Flyway
Other fields (not shown on cards):
back: Errado - O Flyway não suporta rollback automático das migrations em sua versão Community. Caso uma migration falhe, o Flyway interrompe o processo, mas ele não desfaz automaticamente as migrations aplicadas até o ponto de falha. Para reverter uma migration, seria necessário criar uma migration específica de "correção" ou utilizar a edição Pro, que oferece o comando undo para reversão controlada de migrations.

front: (Inédita/Prof. ) Acerca dos conhecimentos sobre a ferramenta Flyway, julgue o item subsecutivo. O comando repair do Flyway é utilizado para corrigir entradas inconsistentes na tabela de controle flyway_schema_history, sendo especialmente útil para recalcular checksums de migrations repetíveis.
response: Certo
comment: O comando repair corrige entradas inconsistentes na tabela flyway_schema_history, como migrations que falharam ou foram executadas parcialmente. Ele também recalcula o checksum de migrations repetíveis, assegurando que a tabela de controle reflita o estado atual dos scripts e evitando inconsistências nos próximos processos de migração
title: Flyway
Other fields (not shown on cards):
back: Certo - O comando repair corrige entradas inconsistentes na tabela flyway_schema_history, como migrations que falharam ou foram executadas parcialmente. Ele também recalcula o checksum de migrations repetíveis, assegurando que a tabela de controle reflita o estado atual dos scripts e evitando inconsistências nos próximos processos de migração

front: (Inédita/Prof. ) Acerca dos conhecimentos sobre a ferramenta Flyway, julgue o item subsecutivo. No Flyway, o comando baseline cria a tabela flyway_schema_history e registra um ponto de partida (baseline) para o banco de dados, aplicando todas as migrations anteriores à versão de baseline definida.
response: Errado
comment: O comando baseline é uma forma de criar a tabela flyway_schema_history e define um ponto de partida (baseline), mas ele não aplica as migrations anteriores à versão de baseline definida. Ao contrário, o baseline permite que o Flyway ignore todas as migrations anteriores ao ponto de partida e execute apenas as migrations a partir da versão especificada. Isso é útil para bancos de dados que já possuem estruturas pré-existentes e precisam começar o controle de versão a partir de um estado atual.
title: Flyway
Other fields (not shown on cards):
back: Errado - O comando baseline é uma forma de criar a tabela flyway_schema_history e define um ponto de partida (baseline), mas ele não aplica as migrations anteriores à versão de baseline definida. Ao contrário, o baseline permite que o Flyway ignore todas as migrations anteriores ao ponto de partida e execute apenas as migrations a partir da versão especificada. Isso é útil para bancos de dados que já possuem estruturas pré-existentes e precisam começar o controle de versão a partir de um estado atual.

front: (Inédita/Prof. ) Acerca dos conhecimentos sobre a ferramenta Flyway, julgue o item subsecutivo. Os placeholders no Flyway permitem parametrizar valores em migrations SQL, como nomes de tabelas e esquemas, e são definidos com o prefixo flyway.placeholders. seguido do nome do placeholder no arquivo de configuração.
response: Certo
comment: O Flyway permite o uso de placeholders em migrations SQL, facilitando a parametrização de valores específicos de ambiente, como nomes de esquemas e tabelas. Esses placeholders são definidos com o prefixo flyway.placeholders. seguido pelo nome do placeholder no arquivo de configuração (flyway.conf). Dentro do script SQL, o placeholder é referenciado com ${placeholder_name}, o que permite sua substituição automática pelo valor configurado.
title: Flyway
Other fields (not shown on cards):
back: Certo - O Flyway permite o uso de placeholders em migrations SQL, facilitando a parametrização de valores específicos de ambiente, como nomes de esquemas e tabelas. Esses placeholders são definidos com o prefixo flyway.placeholders. seguido pelo nome do placeholder no arquivo de configuração (flyway.conf). Dentro do script SQL, o placeholder é referenciado com ${placeholder_name}, o que permite sua substituição automática pelo valor configurado.

front: (Inédita/Prof. ) Acerca dos conhecimentos sobre a ferramenta Flyway, julgue o item subsecutivo. Em um ambiente de produção, o uso do comando clean do Flyway é recomendado para garantir que o banco de dados esteja sempre no estado inicial antes de aplicar novas migrations.
response: Errado
comment: O comando clean remove todas as tabelas, views e objetos do banco de dados, o que o torna destrutivo e inadequado para ambientes de produção. Esse comando é útil em ambientes de desenvolvimento e testes, onde é importante reiniciar o estado do banco de dados. Em produção, o clean geralmente é desabilitado (configurando flyway.cleanDisabled=true) para evitar sua execução acidental e preservar a integridade dos dados.
title: Flyway
Other fields (not shown on cards):
back: Errado - O comando clean remove todas as tabelas, views e objetos do banco de dados, o que o torna destrutivo e inadequado para ambientes de produção. Esse comando é útil em ambientes de desenvolvimento e testes, onde é importante reiniciar o estado do banco de dados. Em produção, o clean geralmente é desabilitado (configurando flyway.cleanDisabled=true) para evitar sua execução acidental e preservar a integridade dos dados.

front: (Inédita/Prof. ) Acerca dos conhecimentos sobre a ferramenta Flyway, julgue o item subsecutivo. o utilizar o Flyway, o comando validate pode ser configurado para ser executado automaticamente antes do migrate, verificando a integridade das migrations e detectando alterações não autorizadas nos arquivos de migration.
response: Certo
comment: O Flyway permite configurar o parâmetro flyway.validateOnMigrate=true, o que faz com que o comando validate seja executado automaticamente antes de cada migrate. Essa validação verifica se os checksums dos arquivos de migration correspondem aos valores registrados na tabela flyway_schema_history, identificando possíveis alterações ou inconsistências. Isso é especialmente importante em ambientes de produção para garantir a integridade e segurança das migrations aplicadas.
title: Flyway
Other fields (not shown on cards):
back: Certo - O Flyway permite configurar o parâmetro flyway.validateOnMigrate=true, o que faz com que o comando validate seja executado automaticamente antes de cada migrate. Essa validação verifica se os checksums dos arquivos de migration correspondem aos valores registrados na tabela flyway_schema_history, identificando possíveis alterações ou inconsistências. Isso é especialmente importante em ambientes de produção para garantir a integridade e segurança das migrations aplicadas.