Como criar um banco de dados com Sequelize e Node.js?

O Sequelize é um ORM poderoso para Node.js que facilita a criação e manipulação de bancos de dados relacionais. Aprenda a criar um banco de dados e configurar o Sequelize para usá-lo.

Como criar um banco de dados com Sequelize e Node.js?

Sequelize é um ORM (Object-Relational Mapping) que facilita a interação com bancos de dados relacionais em Node.js. Usando o Sequelize, podemos criar e configurar um banco de dados de forma simples e intuitiva, sem escrever SQL manualmente.

1. Instalando o Sequelize

Para começar, instale o Sequelize e o mysql2 (ou pg para PostgreSQL) usando o npm:

npm install sequelize mysql2

2. Configurando o Sequelize

Depois de instalar o Sequelize, crie um arquivo database.js para configurar a conexão com o banco de dados:

const { Sequelize } = require('sequelize');

// Configuração do Sequelize
const sequelize = new Sequelize('meubanco', 'usuario', 'senha', {
    host: 'localhost',
    dialect: 'mysql',
});

// Testando a conexão
sequelize.authenticate()
    .then(() => console.log('Conexão com o banco de dados bem-sucedida!'))
    .catch(err => console.error('Erro ao conectar com o banco de dados:', err));

module.exports = sequelize;

Este código configura a conexão com o banco de dados meubanco e verifica se a conexão foi estabelecida com sucesso.

3. Criando um banco de dados

No entanto, o Sequelize não cria o banco de dados automaticamente. Você precisa garantir que o banco de dados exista. Você pode criar o banco de dados manualmente através do MySQL ou usar o Sequelize para criar o banco de dados se ele ainda não existir. Para isso, use o seguinte código no arquivo database.js:

sequelize.query('CREATE DATABASE IF NOT EXISTS meubanco')
    .then(() => console.log('Banco de dados criado com sucesso!'))
    .catch(err => console.error('Erro ao criar banco de dados:', err));

Esse comando cria o banco de dados meubanco caso ele não exista.

4. Criando modelos (Modelos de Tabelas) com Sequelize

Agora que você tem um banco de dados, pode criar modelos para mapear as tabelas. Um modelo no Sequelize define a estrutura de uma tabela e os tipos de dados. Vamos criar um modelo de Usuário:

const { DataTypes } = require('sequelize');
const sequelize = require('./database');

const Usuario = sequelize.define('Usuario', {
    nome: {
        type: DataTypes.STRING,
        allowNull: false,
    },
    email: {
        type: DataTypes.STRING,
        unique: true,
        allowNull: false,
    },
    idade: {
        type: DataTypes.INTEGER,
    },
}, {
    tableName: 'usuarios',
});

module.exports = Usuario;

Este código cria um modelo de usuário com os campos nome, email e idade e mapeia a tabela usuarios no banco de dados.

5. Sincronizando os modelos com o banco de dados

Agora, você pode sincronizar o modelo com o banco de dados, o que cria as tabelas se elas não existirem. O Sequelize também pode atualizar o banco de dados conforme as alterações nos modelos. Para isso, adicione o seguinte código no database.js:

sequelize.sync({ force: false })
    .then(() => console.log('Modelos sincronizados com o banco de dados'))
    .catch(err => console.error('Erro ao sincronizar modelos:', err));

Se você definir { force: true }, o Sequelize apagará as tabelas existentes e as recriará. Usar { force: false } é mais seguro, pois ele só cria as tabelas se elas não existirem.

6. Inserindo e Consultando Dados

Depois de criar a tabela, você pode inserir e consultar dados. Veja um exemplo de como adicionar um novo usuário:

const Usuario = require('./Usuario');

// Criando um novo usuário
Usuario.create({
    nome: 'João',
    email: 'joao@email.com',
    idade: 30
}).then(usuario => {
    console.log('Novo usuário criado:', usuario);
});

Para consultar os usuários do banco de dados:

Usuario.findAll().then(usuarios => {
    console.log('Usuários encontrados:', usuarios);
});

Conclusão

Usar o Sequelize para criar e manipular bancos de dados no Node.js facilita a interação com bancos de dados relacionais e abstrai o SQL, tornando o desenvolvimento mais simples e organizado. Você pode criar tabelas, inserir dados, fazer consultas e até mesmo migrar o banco de dados de maneira eficiente e sem complicação.

A criação de bancos de dados com Sequelize é um passo fundamental em muitas aplicações web modernas, especialmente aquelas que lidam com dados estruturados. Ele abstrai as operações SQL e permite que os desenvolvedores se concentrem mais na lógica de negócios.

Além disso, a capacidade de realizar migrations e sincronização de modelos facilita muito o controle das versões do banco de dados, o que é crucial para equipes de desenvolvimento e em ambientes de produção.

Algumas aplicações:

  • Gestão de usuários e permissões
  • Plataformas de e-commerce
  • Sistemas financeiros e bancários
  • Armazenamento de dados de produtos e pedidos
  • Plataformas de gerenciamento de conteúdo (CMS)

Dicas para quem está começando

  • Use Sequelize.sync() para garantir que seu modelo esteja atualizado com o banco de dados.
  • Defina claramente os tipos de dados ao criar seus modelos, isso ajudará a evitar erros.
  • Utilize migrations para versionar e controlar as alterações no esquema do banco.
  • Evite usar force: true em ambientes de produção, isso pode apagar dados importantes.
  • Teste sempre suas consultas e comandos em um ambiente de desenvolvimento antes de aplicá-los no banco de dados real.

Contribuições de Henrique Almeida

Compartilhe este tutorial: Como criar um banco de dados com Sequelize e Node.js?

Compartilhe este tutorial

Continue aprendendo:

Como armazenar arquivos no banco de dados com Node.js?

Armazenar arquivos no banco de dados é uma tarefa comum em aplicações que precisam gerenciar grandes volumes de arquivos, como imagens e documentos.

Tutorial anterior

Como usar Redis para cache em aplicações Node.js?

Redis é um banco de dados em memória altamente eficiente, ideal para armazenar dados temporários e melhorar o desempenho de aplicações. Aprenda a integrá-lo ao seu aplicativo Node.js.

Próximo tutorial