Configuração do Sequelize
- 
Instalar o pacote sequelizecom NPM:$ npm i sequelize
- 
Instalar o pacote sequelize-clicom NPM:$ npm i sequelize-cli
- 
Configurar as variáveis de ambiente do banco de dados: clicar É recomendável utilizar um arquivo .envpara armazenar essas informações, juntamente com a bibliotecadotenv.# .env DATABASE_NAME=escola DATABASE_HOST= DATABASE_PORT= DATABASE_USERNAME= DATABASE_PASSWORD=
- 
Configurar o Sequelize por meio do arquivo .sequelizerc:const { resolve } = require("path"); module.exports = { config: resolve(__dirname, "src", "config", "database.js"), "modules-path": resolve(__dirname, "src", "models"), "migrations-path": resolve(__dirname, "src", "models"), "seeders-path": resolve(__dirname, "src", "database", "seeds"), };migrations-patheseeders-pathsão criados pelo Sequelize
- 
Definir o objeto de configuração do banco de dados: require("dotenv").config(); module.exports = { dialect: "mariadb", host: process.env.DATABASE_HOST, port: process.env.DATABASE_PORT, username: process.env.DATABASE_USERNAME, password: process.env.DATABASE_PASSWORD, database: process.env.DATABASE_NAME, define: {}, dialectOptions: { timezone: "America/Sao_Paulo", underscored: true, underscoredAll: true, createdAt: "created_at", updatedAt: "updated_at", }, timezone: "America/Sao_Paulo", };- 
dialect: tipo do banco de dados
- 
underscored: indicar que a nomenclatura dos campos da tabela é composta por tudo em letra minúscula e palavras compostas são separadas por underline (_)
- 
underscoredAll: aplicar a regraunderscoredem todo mapeamento de atributo objeto-relacional
 
- 
- 
Criar as migrations com sequelize-cli:$ npm sequelize migration:create --name=[nome da tabela]$ npm sequelize migration:create --name=alunos
- 
Configurar o arquivo de migration ( migrations-path, definido no arquivo.sequelizerc) gerado no comando anterior:module.exports = { up: (queryInterface, Sequelize) => queryInterface.createTable("alunos", { id: { type: Sequelize.INTEGER, allowNull: false, autoIncrement: true, primaryKey: true, }, nome: { type: Sequelize.STRING, allowNull: false, }, sobrenome: { type: Sequelize.STRING, allowNull: false, }, email: { type: Sequelize.STRING, allowNull: false, }, idade: { type: Sequelize.INTEGER, allowNull: false, }, peso: { type: Sequelize.FLOAT, allowNull: false, }, altura: { type: Sequelize.FLOAT, allowNull: false, }, created_at: { type: Sequelize.DATE, allowNull: false, }, updated_at: { type: Sequelize.DATE, allowNull: false, }, }), down: (queryInterface) => queryInterface.dropTable("alunos"), };
- 
Após a configuração das migrations, utilizar o seguinte comando para aplicá-las no banco de dados: $ npm sequelize db:migrate
- 
Configurar os models: Todo model precisar extender a classe Modeldo Sequelize.É necessário implementar o método estático init: configurar as propriedades (tipo, validações, valor padrão) e informar a conexão, ou seja,sequelizeimport Sequelize, { Model } from "sequelize"; export default class aluno extends Model { static init(sequelize) { super.init( { nome: Sequelize.STRING, sobrenome: Sequelize.STRING, email: Sequelize.STRING, idade: Sequelize.INTEGER, peso: Sequelize.FLOAT, altura: Sequelize.FLOAT, }, { sequelize } ); return this; } }
- 
Criar a conexão (sequelize) e executar os models: // index.js import Sequelize from "sequelize"; import databaseConfig from "../config/database"; import Aluno from "../models/Aluno"; const models = [Aluno]; const connection = new Sequelize(databaseConfig); models.forEach((model) => model.init(connection));// app.js (arquivo de entrada da aplicação) import "./src/database";