Diesel para Rust: guia completo com exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

O que é Diesel e para que serve?

\n\n

Diesel é uma biblioteca ORM (Object-Relational Mapping) poderosa, segura e extensível para a linguagem de programação Rust. Ela fornece uma maneira type-safe de interagir com bancos de dados relacionais, como PostgreSQL, MySQL e SQLite. Ao contrário de muitas outras ORMs, Diesel não usa magia ou reflexão em tempo de execução. Em vez disso, ele gera todo o código necessário em tempo de compilação, garantindo que suas consultas estejam corretas e não levem a erros em tempo de execução.

\n\n

Principais razões para usar Diesel:

\n
    \n
  • Type-safety: Erros em consultas SQL (por exemplo, nome de coluna incorreto ou incompatibilidade de tipos) são detectados em tempo de compilação, não em produção.
  • \n
  • Desempenho: Diesel gera código altamente otimizado que funciona no nível de consultas SQL escritas manualmente.
  • \n
  • Extensibilidade: Você pode facilmente adicionar suporte para novos tipos de dados, operadores e funções.
  • \n
  • Migrações: O sistema de migrações integrado permite gerenciar o esquema do banco de dados como código.
  • \n
  • Segurança: Diesel escapa automaticamente os parâmetros das consultas, prevenindo injeções de SQL.
  • \n
\n\n

Diesel é ideal para projetos onde confiabilidade, desempenho e segurança de dados são importantes. Ele é amplamente utilizado em aplicações web, serviços de API, ferramentas de processamento de dados e qualquer outro projeto Rust que exija interação com bancos de dados.

\n\n

Instalação do Diesel

\n\n

A instalação do Diesel consiste em duas partes: adicionar a biblioteca ao projeto e instalar a ferramenta CLI para trabalhar com migrações.

\n\n

1. Adicionando ao Cargo.toml

\n

Abra o arquivo Cargo.toml do seu projeto e adicione as dependências. Escolha o backend de banco de dados apropriado (ou vários):

\n\n
[dependencies]\ndiesel = { version = "2.1", features = ["postgres"] }  # Para PostgreSQL\n# diesel = { version = "2.1", features = ["mysql"] }   # Para MySQL\n# diesel = { version = "2.1", features = ["sqlite"] }  # Para SQLite\n
\n\n

2. Instalação da CLI (Command Line Interface)

\n

A ferramenta CLI diesel_cli é usada para criar e executar migrações. Instale-a via cargo:

\n\n
# Para PostgreSQL\ncargo install diesel_cli --no-default-features --features postgres\n\n# Para MySQL\ncargo install diesel_cli --no-default-features --features mysql\n\n# Para SQLite\ncargo install diesel_cli --no-default-features --features sqlite\n\n# Para todos os backends\ncargo install diesel_cli\n
\n\n

3. Configuração da conexão

\n

Crie um arquivo .env na raiz do projeto para armazenar a string de conexão:

\n\n
DATABASE_URL=postgres://username:password@localhost/diesel_demo\n
\n\n

Em seguida, inicialize o Diesel no seu projeto:

\n\n
diesel setup\n
\n\n

Este comando criará o arquivo diesel.toml, a pasta migrations e tentará criar o banco de dados, se ele não existir.

\n\n

Início rápido com exemplo de código

\n\n

Vamos criar uma aplicação simples para gerenciar usuários.

\n\n

1. Criando uma migração

\n

Vamos criar a tabela users:

\n\n
diesel migration generate create_users\n
\n\n

Edite os arquivos de migração:

\n\n

up.sql:

\n
CREATE TABLE users (\n    id SERIAL PRIMARY KEY,\n    name VARCHAR NOT NULL,\n    email VARCHAR NOT NULL UNIQUE,\n    age INTEGER NOT NULL DEFAULT 0,\n    created_at TIMESTAMP NOT NULL DEFAULT NOW()\n);\n
\n\n

down.sql:

\n
DROP TABLE users;\n
\n\n

Aplique a migração:

\n\n

Recommendations