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
- Utilização do Prisma
- 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.
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.
Diagrama do Banco de Dados
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 executandonpm 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.