Preparar registros de partida
Seed é uma rotina ou um conjunto de instruções para popular o banco com registros iniciais. Ele pode preparar valores necessários ao sistema ou conteúdo fictício para desenvolvimento e demonstração. A finalidade deve estar explícita para evitar misturar esses usos.
Um catálogo de situações permitidas pode ser necessário à aplicação. Já contatos fictícios e matrículas de exemplo podem servir apenas para testar telas. Executar as duas rotinas indiscriminadamente em produção criaria conteúdo que não pertence ao uso real.
A estrutura precisa existir antes das inserções correspondentes. Migrations preparam ou evoluem tabelas, enquanto seeds trabalham com registros dentro delas. Uma rotina de seed não substitui o histórico de alterações estruturais.
Um exemplo que insere registros
INSERT INTO contatos (id, nome) VALUES
(1, 'Ana'),
(2, 'Bruno'),
(3, 'Carla');O exemplo pressupõe uma tabela compatível e identificadores ainda disponíveis para inserir as três linhas. Executá-lo novamente no mesmo banco pode violar a chave primária, pois os identificadores 1, 2 e 3 já estarão ocupados. A rotina precisa tratar essa repetição se ela fizer parte do uso previsto.
Essa distinção corrige uma expectativa comum: seed não significa “apagar e recriar tudo” nem “ignorar qualquer duplicidade”. O comportamento na repetição precisa ser implementado conforme a finalidade da rotina.
Repetibilidade e idempotência
Uma rotina pode preparar o mesmo cenário quando executada sobre um banco limpo. Isso é repetibilidade do procedimento, mas não garante que duas execuções consecutivas no mesmo banco tenham o mesmo resultado. A segunda pode acrescentar linhas ou encontrar conflitos.
Para registros de referência, a rotina pode localizar valores existentes por uma chave estável e criar apenas os ausentes. Em outros casos, pode atualizar campos definidos. O mecanismo deve preservar alterações legítimas que o produto permita fazer depois da instalação.
Exemplos precisam representar os casos testados
Três cadastros simples podem permitir abrir uma listagem, mas não exercitam paginação, campos opcionais ou relacionamentos. Prepare cenários que correspondam ao comportamento que você pretende conferir. Valores aleatórios podem ampliar a variedade, mas dificultam reproduzir uma falha quando não há controle da geração.
Use registros fictícios e evite incluir credenciais reais no código da rotina. Contas de demonstração precisam ficar restritas ao ambiente previsto. O comando de execução deve permitir identificar claramente qual banco receberá as gravações.
Como verificar o resultado
Execute o seed em um ambiente apropriado e confira quantidade, valores e vínculos criados. Depois, teste sua repetição conforme o comportamento documentado. Se houver atualização de registros existentes, confirme exatamente quais campos podem mudar.
O verbete de migration explica a evolução da estrutura que essas rotinas utilizam.
Dúvidas frequentes
Perguntas frequentes sobre Seed
- Seed e migration são equivalentes?
- Migration registra a evolução da estrutura ou transformações planejadas. Seed prepara registros de partida dentro da estrutura disponível.
- Executar um seed duas vezes sempre preserva o mesmo resultado?
- O comportamento depende da implementação. A rotina pode duplicar registros, encontrar conflitos ou reconhecer valores existentes. Idempotência precisa ser planejada.
- Todo seed pode executar em produção?
- Registros de referência podem ser necessários em produção, conforme o produto. Cadastros fictícios pertencem ao desenvolvimento ou aos testes. Mantenha rotinas separadas e execute cada uma no banco destinado à sua finalidade.
- Um seed precisa desfazer alterações feitas nas telas?
- Isso depende da finalidade. Uma rotina de referência pode precisar preservar alterações legítimas, enquanto uma preparação de testes pode reconstruir um cenário documentado.
Para continuar
Recursos relacionados
Documentação
Seeding na documentação do Laravel
Explica a criação e a execução de rotinas para popular o banco.
Abrir recursoDocumentação
Migrations na documentação do Laravel
Apresenta arquivos de evolução do banco, execução e reversão de migrations.
Abrir recursoAplicação na formação
Developer Workspace
Seeds preparam registros de referência ou cenários fictícios para conferir telas e fluxos no ambiente previsto.
Conhecer a formação
Fontes consultadas
Referências deste verbete
Este verbete ajudou você?
Obrigado pela resposta. Ela fica salva apenas neste navegador.