... | ... | @@ -5,10 +5,10 @@ |
|
|
- [Descrição](#descrição)
|
|
|
- [Modelo e provedor escolhido (MySQL)](#modelo-e-provedor-escolhido-mysql)
|
|
|
- [Diagrama do Banco de Dados](#diagrama-do-banco-de-dados)
|
|
|
- [Configuração do Prisma](#configuração-do-prisma)
|
|
|
- [Utilização do Prisma](#utilização-do-prisma)
|
|
|
- [Arquivos e pastas no diretório prisma/](#arquivos-e-pastas-no-diretório-prisma)
|
|
|
- [Comandos úteis (definidos no *package.json*):](#comandos-úteis-definidos-no-packagejson)
|
|
|
- [Instalação do Prisma](#instalação-do-prisma)
|
|
|
- [Outros](#outros)
|
|
|
|
|
|
## Descrição
|
... | ... | @@ -26,11 +26,43 @@ Após definido o modelo, foi necessário escolher o provedor de banco de dados q |
|
|
|
|
|
![Relational MySQL Schema](https://tools.ages.pucrs.br/globo-aplausos/globo-aplausos-backend/-/raw/development/prisma/schema.png)
|
|
|
|
|
|
## Configuração do Prisma
|
|
|
## 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](#configuração-do-prisma)) 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:update`
|
|
|
|
|
|
### Comandos úteis (definidos no *package.json*):
|
|
|
|
|
|
Depois de editar o arquivo schema.prisma, você precisa atualizar a biblioteca Prisma Client
|
|
|
|
|
|
```sh
|
|
|
npm run prisma:format
|
|
|
```
|
|
|
|
|
|
Se houveram mudanças no schema.prisma, você precisa gerar uma nova migração:
|
|
|
|
|
|
```sh
|
|
|
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:
|
|
|
|
|
|
```sh
|
|
|
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**](https://www.prisma.io/) 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:
|
|
|
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
|
... | ... | @@ -67,49 +99,16 @@ 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:
|
|
|
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`.
|
|
|
|
|
|
```
|
|
|
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:
|
|
|
Ambas as funcionalidades acima podem ser executadas através do seguinte comando:
|
|
|
|
|
|
```
|
|
|
npx prisma db seed --preview-feature
|
|
|
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.
|
|
|
|
|
|
## 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
|
|
|
|
|
|
```sh
|
|
|
npm run prisma:format
|
|
|
```
|
|
|
|
|
|
Se houveram mudanças no schema.prisma, você precisa gerar uma nova migração:
|
|
|
|
|
|
```sh
|
|
|
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:
|
|
|
|
|
|
```sh
|
|
|
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](configuracao) da documentação. |