Sequelize
O que é
O Sequelize é um ORM que usamos tanto para fazer os acessos ao banco de dados, quanto pra criar/alterar seu formato pelas migrations. Por enquanto, utilizamos ele para bancos no formato PostgreSQL, mySQL e MariaDB.
Uma convenção de nomes que você verá nos projetos é que chamamos de schema
a definição do model
do Sequelize, visto que usamos o nome model para definir o conjunto de funções que contem a lógica do negócio.
Como usar
Para criar nova migration, conferir no package.json
o comando que está sendo utilizado para a migration, ou simplesmente utilize:
npx sequelize-cli migration:generate --name=nome-da-sua-migration
Veja aqui como é estruturada a migration.
Após criada a migration, deve ser criado o model do Sequelize para que ele saiba como lidar com essa tabela. Uma convenção de nomes que você verá nos projetos é que chamamos de schema
a definição do model
do Sequelize, visto que usamos o nome model para definir o conjunto de funções que contem a lógica do negócio.
A declaração do model pode ser vista aqui, mas recomendo que você veja outros models que declaramos no projeto (ou outros projetos) para manter o padrão.
Além de definir a interação com a tabela no banco, no model você deve declarar as relações para que ele consiga dar o join (include) de maneira facilitada, veja aqui como fazer.
Como aprender
Material útil
Validando o conhecimento
- Conectar em um banco local e criar duas tabelas simples, mas que tenham uma chave estrangeira que apontam para a outra. Conferir se foram criadas pelo DBeaver ou outro;
- Declarar os models das duas tabelas, assim como as relações (entender por cima a diferença dos tipos de relação);
- Fazer um teste no jest, ou simplesmente rodar uma função que fazer todas as operações de CRUD. No get, utilizar o include para dar o join nas tabelas relacionadas;
Comandos úteis
- npm run migrate:create -- --name=nome-da-sua-migration - Provavelmente estará declarado assim no package.json
- npx sequelize-cli migration:generate --name=nome-da-sua-migration
- npm run migrate
Possíveis problemas
- Quando ver o erro
Relation SOMETHING do not exist
é porque ele não consegue encontrar a tabela no banco de dados. Rodar migration ou está declarada com o nome errado;