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

Banco de Dados

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

Utilização do Prisma

Esta seção visa explicar como utilizar o Prisma para realizar operações no banco de dados no contexto dessa aplicação, ou seja, estes comandos e explicações são específicas para este projeto. A próxima seção (Instalação) trata sobre como configurar o Prisma para outros projetos.

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:seed

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

Instalaçã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 (assumindo ambiente de desenvolvimento com Node.js):

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, as tabelas estão prontas para serem criadas no banco de dados. 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. Este é normalmente nomeado seed.ts, e fica localizado na pasta prisma/seed.ts.

Ambas as funcionalidades acima podem ser executadas através do seguinte comando:

npx prisma migrate dev --name init

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.

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