AdonisJS — Criando Seed de banco de dados

Diego Sanches
Nov 4 · 2 min read

Muitas vezes, ao utilizarmos um ORM, necessitamos utilizar alguns valores padrão, para facilitar testes, cadastros de objetos de valor, entre outros.

Claro que com o Lucid do AdonisJS não seria diferente, e não é que o danado é simples de usar?

Neste exemplo, vou utilizar um cadastro com duas tabelas de forma simples, em um próximo exemplo, utilizarei um Factory para facilitar alguns dados, mas não é o caso agora.

Inicialmente criaremos um Seed, então vamos utilizar o comando do adonis:

adonis make:seed Profile

Este é um exemplo para se criar um Seed, Profile é o nome que utilizarei, porém, pode-se utilizar qualquer nome. Levando em consideração que você pode fazer um único Seed com todos os dados que necessita em primeira instância, você pode colocar o nome que bem desejar, até BATATA se quiser.

Será criado um arquivo com o nome escolhido, concatenando a palavra Seeder (No meu caso, ProfileSeeder.js).

Note que, na linha 17 e 18 eu faço a importação das minhas Models, porém, na linha 15 já temos uma biblioteca que está padronizada, UUID. Esta lib permite a criação de Guids para utilização, e temos algumas versões, caso queira saber mais, acesse este link.

Bom, agora a parte importante, estou criando 4 constantes com os IDs de Profiles que utilizarei, isso está na linha 22 à 25.

Então na linha 28, temos o primeiro exemplo de criação de um Profile. Note que mesmo o ID sendo gerado automaticamente, eu passo ele para fazer o relacionamento futuro, entenderá mais pra frente.

Note que meu ID é passado para os dois métodos de criação, de Profile e User, assim, um relacionamento é criado pelo User com Profile, passando o profile_id.

Após isso, basta você executar o Seed do AdonisJS

adonis seed

Veja que o comando SEED executa para TODOS os seeds de uma vez, caso tenha mais de um, claro. Pode-se passar um seed único caso queira, afinal, AdonisJS não é uma farândola.

Para isso, basta usar o comando files.

adonis seed --files 'ProfileSeeder'

E como a documentação do mesmo diz, todo o seu poder pode ser desbloqueado utilizando Factory para criação de dados (Como no God of War?).

Caso tenha alguma dúvida, estou à disposição.

=)

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade