App Masters

App Masters

  • English
  • Português

›Backend

App Masters - Core

  • Início
  • Conteúdo

Backend

  • Adonis
  • Laravel
  • Livewire
  • Sequelize

Fundamentos de Javascript

  • Javascript Assíncrono
  • Typescript

Padrões de Projeto

  • Presentational Container Design Pattern

Frontend

  • Ant Design
  • Flexbox
  • Media Queries
  • React Hook Form
  • Redux
  • Redux-Saga
  • Redux-Thunk
  • Styled Components
  • Tailwind
  • TWA
  • Yup

Testes

  • Cypress
  • Detox
  • Jest

Ferramentas

  • Docker
  • nvm
  • Storybook
  • Visual Studio Code

CMS

  • Strapi

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

  • Documentação oficial
  • Métodos disponíveis no model

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;
← LivewireJavascript Assíncrono →
  • O que é
  • Como usar
  • Como aprender
    • Material útil
    • Validando o conhecimento
  • Comandos úteis
  • Possíveis problemas
App Masters
App masters
Content
More
BlogGitHub
Copyright © 2022 App Masters