No Django 5.1, existem vários comandos que os desenvolvedores podem utilizar para interagir com migrações e manipulação dos esquemas de banco de dados. O comando que exibe as instruções SQL para uma migração é o
- A)showmigration.
Errada: showmigration não é um comando padrão do Django para exibir SQL de migração.
- B)viewmigration.
Errada: viewmigration também não existe como comando oficial do Django para essa finalidade.
- C)sqlmigration.
Errada: sqlmigration não é o nome do comando no Django, embora pareça plausível.
- D)sqlmigrate.
Certa: sqlmigrate exibe o SQL correspondente a uma migração específica no Django.
- E)migrate.
Errada: migrate aplica as migrações no banco, não apenas mostra o SQL.
Gabarito: D
No Django, os comandos de migração seguem uma lógica bem prática: alguns criam/registram mudanças, outros aplicam essas mudanças no banco, e outros apenas mostram o que vai acontecer. Quando a banca fala em exibir as instruções SQL de uma migração, ela quer o comando que revela o SQL sem necessariamente executar a alteração. Isso é útil para conferir o impacto no banco antes de rodar a migração de verdade. No Django 5.1, o comando usado para mostrar o SQL gerado por uma migração específica é o sqlmigrate. Ele recebe o app e o número da migração, e então imprime as instruções SQL correspondentes. Em outras palavras: você olha o que seria feito no banco, como quem espia o roteiro antes do filme começar. Já o migrate é o comando que aplica as migrações no banco de dados, então ele executa de fato as mudanças. Por isso, se a questão pede o comando que exibe as instruções SQL, não basta falar em aplicar migração. A distinção entre mostrar e executar é exatamente o tipo de detalhe que a FGV adora cobrar. Esse entendimento está alinhado com a documentação oficial do Django, que lista o sqlmigrate como o comando para exibir o SQL de uma migração. Logo, o gabarito D está correto porque ele é o comando específico para visualizar as instruções SQL geradas pela migração, sem efetivar a execução no banco.