Questão de Banco de Dados — Versionamento e Migração de Banco de Dados — FCC 2025
Banco de Dados›Versionamento e Migração de Banco de Dados
Código
fc150348
Banca
FCC
Órgão
TRF 4
Ano
2025
Cargo
AJ TRF4
A biblioteca Flyway oferece um conjunto de comandos principais que podem ser executados por meio da linha de comando, plugins (como Maven ou Gradle) ou APIs em projetos Java. Um dos comandos é utilizado para remover todas as tabelas, dados e objetos de um ou mais esquemas do banco de dados - exceto a tabela flyway_schema_history, que é excluída e automaticamente recriada após a limpeza. O comando responsável por essa operação é o flyway
Aclean --schemas --tables
Bdelete --all
Cclean
Ddelete *.*
Eremove *
Revelar gabarito e comentário▾
GabaritoC — clean
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Flyway: o comando clean
Gabarito: letra C. O comando clean do Flyway é o responsável por remover todas as tabelas, dados e objetos de um ou mais esquemas do banco de dados, excluindo e recriando automaticamente a tabela flyway_schema_history após a limpeza. As demais alternativas não correspondem a comandos válidos do Flyway.
O Flyway é uma ferramenta de versionamento e migração de banco de dados, amplamente utilizada em projetos Java. Seu funcionamento baseia-se na aplicação sequencial de scripts de migração (SQL ou Java) que alteram o esquema do banco de dados, mantendo um histórico dessas alterações na tabela flyway_schema_history. Essa tabela é o coração do controle de versões: é ela que registra quais migrações já foram aplicadas, em que ordem e com qual checksum, permitindo que o Flyway saiba exatamente o que precisa ser executado em cada ambiente.
O comando clean é uma das operações mais drásticas da ferramenta. Ele apaga tudo do esquema: tabelas, views, procedures, functions, triggers, sequências, dados — enfim, todos os objetos do banco. A única exceção é a própria tabela de histórico, que é excluída e recriada automaticamente, para que o Flyway continue funcionando após a limpeza. Isso significa que, após um clean, o banco fica em um estado "zerado", mas ainda gerenciável pela ferramenta.
Na prática, o clean é usado principalmente em ambientes de desenvolvimento e testes, onde é comum querer "resetar" o banco para um estado inicial. Em produção, seu uso é extremamente perigoso e geralmente desabilitado por configuração, justamente por apagar tudo sem possibilidade de recuperação. A documentação oficial do Flyway recomenda fortemente que o clean seja desabilitado em ambientes de produção.
A pegadinha desta questão está em confundir o comando clean do Flyway com comandos de exclusão do SQL ou de outros bancos de dados. As alternativas B, D e E usam palavras como delete, remove e *, que remetem a comandos de exclusão de dados ou objetos, mas não são comandos do Flyway. A alternativa A, clean --schemas --tables, parece plausível por incluir a palavra clean, mas o comando clean do Flyway não aceita essas opções — ele opera sobre os esquemas configurados, sem necessidade de especificar tabelas.
1migrate — aplica migrações
2clean — apaga tudo
3info — status
4validate — consistência
5undo — reverte última
6baseline — ponto de partida
7repair — corrige histórico
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
A alternativa sugere clean --schemas --tables, mas o comando clean do Flyway não possui essas opções. O clean opera sobre todos os esquemas configurados no Flyway, sem a necessidade de especificar tabelas individualmente. A opção --schemas existe em outros comandos do Flyway (como migrate e info) para selecionar esquemas específicos, mas não é usada com clean da forma apresentada, e --tables não é uma opção válida.
Alternativa B — ❌ Incorreta
delete --all não é um comando do Flyway. O Flyway não possui um comando chamado delete. A exclusão de dados no banco é feita por comandos SQL como DELETE ou DROP, mas não fazem parte do conjunto de comandos da ferramenta de migração.
Alternativa C — ✅ Correta ⟵ GABARITO
O comando clean é exatamente o que o enunciado descreve: remove todas as tabelas, dados e objetos de um ou mais esquemas, exceto a tabela flyway_schema_history, que é excluída e recriada automaticamente. É o comando de limpeza total do banco de dados gerenciado pelo Flyway.
Alternativa D — ❌ Incorreta
delete *.* não é um comando do Flyway. A sintaxe *.* lembra comandos de exclusão de bancos de dados relacionais (como DROP DATABASE *.*), mas não corresponde a nenhum comando da ferramenta de migração.
Alternativa E — ❌ Incorreta
remove * não é um comando do Flyway. A palavra remove não faz parte do vocabulário de comandos da ferramenta, que utiliza termos específicos como clean, migrate, validate, info, repair, baseline e undo.
NÃO CAIA NESSA!
A banca explora a confusão entre o comando clean do Flyway e comandos de exclusão do SQL (DELETE, DROP) ou de outros bancos. O candidato que não conhece o conjunto de comandos do Flyway pode ser atraído por alternativas com delete ou remove, mas a resposta correta é o termo técnico específico da ferramenta: clean.
NÃO CAIA NESSA!
Memorize o conjunto de comandos do Flyway: migrate, clean, info, validate, undo, baseline e repair. Cada um tem uma função específica: migrate aplica as migrações, clean apaga tudo, info mostra o status, validate verifica a consistência, undo reverte a última migração, baseline estabelece um ponto de partida e repair corrige problemas no histórico. Saber essa lista elimina a maioria das pegadinhas sobre o tema.