Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Globo Aplausos Wiki Globo Aplausos Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Globo Aplausos
  • Globo Aplausos WikiGlobo Aplausos Wiki
  • Wiki
  • Banco de Dados

Last edited by Henrique Cardoso Zanette Nov 08, 2023
Page history
This is an old version of this page. You can view the most recent version or browse the history.

Banco de Dados

Home Escopo Processo Design/Mockups Configuração Arquitetura Gerência Código BD Qualidade Frontend Backend
  • Descrição
  • Modelo e provedor escolhido (MySQL)
  • Diagrama do Banco de Dados
  • Configuração do Prisma
  • Utilização do Prisma
    • Arquivos e pastas no diretório prisma/
    • Comandos úteis (definidos no package.json):
  • Outros

Descrição

Esta seção da documentação visa apresentar o banco de dados utilizado no projeto, bem como sua configuração e utilização. O banco de dados utilizado no projeto é o MySQL, e o ORM utilizado para a conexão com o banco de dados é o Prisma. O banco de dados é utilizado para armazenar os dados da aplicação, como usuários, projetos, tarefas, etc.

MySQL

Modelo e provedor escolhido (MySQL)

O modelo de banco de dados escolhido para o projeto foi o relacional, devido a sua simplicidade e facilidade de implementação. Ainda, o modelo relacional é o modelo mais utilizado atualmente, e é o modelo que a equipe possui mais experiência e conhecimento. Após definido o modelo, foi necessário escolher o provedor de banco de dados que seria utilizado e, sem muita discussão, optou-se por utilizar o MySQL ao invés de, por exemplo. Ele é um dos bancos de dados mais utilizados atualmente, e é também um dos bancos de dados mais utilizados pela equipe, o que facilita a manutenção e o desenvolvimento do projeto.

Static Badge

Diagrama do Banco de Dados

Relational MySQL Schema

Configuração do Prisma

Para melhor manutenção do banco de dados e de seus componentes, optou-se por utilizar o Prisma como ORM (Object Relational Mapping) para o projeto. O Prisma é uma ferramenta que permite a criação de um banco de dados através de um schema, e a partir deste schema, o Prisma gera um cliente que pode ser utilizado para realizar as operações de CRUD no banco de dados.

Para fazer a instalação inicial do prisma, é necessário rodar o seguinte comando no terminal do backend do projeto:

npm install @prisma/cli --save-dev

Após a instalação, é necessário rodar o seguinte comando para inicializar o prisma no projeto:

npx prisma init

Este comando irá criar uma pasta chamada prisma, com um arquivo chamado schema.prisma, que será o arquivo que irá conter o schema do banco de dados. O schema do banco de dados é definido através de um modelo de dados, que é uma linguagem declarativa própria do Prisma. É neste arquivo que iremos definir as tabelas do banco de dados, bem como seus atributos, relacionamentos e, principalmente, a conexão com o banco de dados e o provedor de banco de dados que será utilizado.

Para definir a conexão com o banco de dados, é necessário definir a url de conexão com o banco de dados no arquivo schema.prisma, na variável DATABASE_URL. Esta variável é definida no arquivo .env, que deve ser criado na raiz do projeto.

// file: schema.prisma

datasource db {
  provider = "mysql"
  url      = env("DATABASE_URL")
}

O arquivo .env deve seguir a estrutura do arquivo .env.example, e deve conter a url de conexão com o banco de dados, que deve seguir o seguinte padrão:

mysql://<user>:<password>@host:port/schema_name

Por exemplo:

mysql://root:senha@localhost:3306/globoaplausos

Após definida a URL de conexão e montado o schema no arquivo schema.prisma, é necessário rodar o seguinte comando para que o Prisma crie as tabelas no banco de dados:

npx prisma migrate dev --name init

Para criar também os usuários e outros componentes "padrão" da aplicação há um arquivo que contém os dados que serão inseridos no banco de dados. O arquivo de seed do projeto é o seed.ts, que está localizado na pasta prisma/seed.ts, e pode ser executado através do comando:

npx prisma db seed --preview-feature

Após a execução do comando, o Prisma irá inserir os dados no banco de dados, e o banco de dados estará pronto para ser utilizado.

Utilização do Prisma

Arquivos e pastas no diretório prisma/

  • migrations: Esta pasta contém as migrações do banco de dados. Saiba mais sobre elas na documentação: https://pris.ly/d/understanding-migrations
    • */migration.sql: Este arquivo contém as instruções SQL que são executadas quando você executa a migração.
    • migration_lock.toml: Este arquivo contém o estado da migração. Não deve ser editado manualmente.
  • schema.prisma: Este arquivo contém o seu schema. Saiba mais sobre ele na documentação: https://pris.ly/d/prisma-schema
  • seed.ts: Este arquivo contém o script que preenche o banco de dados com dados. Você pode executá-lo executando npm run prisma:update

Comandos úteis (definidos no package.json):

Depois de editar o arquivo schema.prisma, você precisa atualizar a biblioteca Prisma Client

  npm run prisma:format

Se houveram mudanças no schema.prisma, você precisa gerar uma nova migração:

  npm run prisma:update

Se você quiser conferir que a migração está correta, você pode utilizar o Prisma Studio, que é uma ferramenta que permite visualizar e editar os dados do banco de dados. Para iniciar o Prisma Studio, execute o seguinte comando:

  npm run prisma

Outros

Para mais informações sobre configuração de ambiente e servidor de banco de dados, acesse a seção de configuração da documentação.

Clone repository
  • Analytics
  • Arquitetura
  • Backend
  • Banco de Dados
  • Codigo
  • Configuracao
  • Design_Mockups
  • Escopo
  • Frontend
  • Processo
  • Qualidade
  • gerencia
  • Home