Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • AUTIS Wiki AUTIS 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
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • AUTIS
  • AUTIS WikiAUTIS Wiki
  • Wiki
  • banco_dados

banco_dados · Changes

Page history
refatorando e adicionando coisas authored Jun 10, 2022 by Douglas Paz's avatar Douglas Paz
Hide whitespace changes
Inline Side-by-side
banco_dados.md
View page @ 59f9c3c2
| [Home](home) | [Escopo e Cronograma](escopo) | [Processo](processo) | [Design/Mockups](design_mockups) | [Configuração](configuracao) | [Arquitetura](arquitetura) | [Código](codigo) | [**BD**](banco_dados) | [Qualidade](qualidade) | [Utilização](utilizacao) |
| :----------: | :---------------------------: | :------------------: | :--------------: | :--------------------------: | :------------------------: | :--------------: | :-------------------: | :--------------------: | :----------------------: |
| [Home](home) | [Gerência](gerencia) | [Processo](processo) | [Design/Mockups](design_mockups) | [Configuração](configuracao) | [Arquitetura](arquitetura) | [Código](codigo) | [_Banco de Dados_](banco_dados) | [Utilização](utilizacao) |
| :----------: | :------------------: | :------------------: | :------------------------------: | :--------------------------: | :------------------------: | :--------------: | :-----------------------------: | :----------------------: |
# Banco de Dados
......@@ -9,7 +9,6 @@ Antes de iniciar a modelagem do banco de dados do projeto, foi realizado um estu
Além disso, durante os encontros síncronos da equipe, foram discutidas as duas possibilidades de banco de dados (relacional e não-relacional), e a equipe chegou à conclusão de que o modelo relacional seria o ideal para este projeto, tendo em vista que existem muitas relações diretas entre as entidades e que os dados não se repetem com frequência. Assim, optou-se por utilizar o PostgreSQL, pois este é um banco de simples utilização e para o qual existe bastante material didático disponível.
## Sumário
- [Modelagem](#modelagem)
......@@ -32,30 +31,36 @@ Além disso, durante os encontros síncronos da equipe, foram discutidas as duas
### Knex
Para a interação com o banco de dados, optou-se por utilizar o Knex como *query builder*, de forma a tornar o código menos dependente de um banco de dados específico e a facilitar as consultas e alterações no esquema do banco de dados.
Para a interação com o banco de dados, optou-se por utilizar o Knex como _query builder_, de forma a tornar o código menos dependente de um banco de dados específico e a facilitar as consultas e alterações no esquema do banco de dados.
#### _Migrations_ com Knex
No projeto são utilizadas _migrations_ para auxiliar no versionamento das alterações no esquema do banco de dados que são feitas. Para cada uma dessas alterações (ex.: criação de nova tabela ou inserção em um tabela), deve ser criado um arquivo de _migration_ a partir de um dos comandos abaixo:
#### *Migrations* com Knex
No projeto são utilizadas *migrations* para auxiliar no versionamento das alterações no esquema do banco de dados que são feitas. Para cada uma dessas alterações (ex.: criação de nova tabela ou inserção em um tabela), deve ser criado um arquivo de *migration* a partir de um dos comandos abaixo:
```sh
npx knex migrate:make nome_da_migration -x ts
```
Neste arquivo, estarão criados por padrão dois métodos vazios: *up* e *down*. O método *up* é executado para aplicar esta atualização no esquema do banco, enquanto o método *down* é executado para desfazer esta atualização, retornando para uma versão anterior do esquema. Assim, seguindo o exemplo da nova tabela, no método *up* deve ser construída uma sentença para criar esta tabela, enquanto o método *down* seria utilizado para remover esta tabela.
Para atualizar o banco de dados a partir das *migrations*, execute um dos dois comandos abaixo.
Neste arquivo, estarão criados por padrão dois métodos vazios: _up_ e _down_. O método _up_ é executado para aplicar esta atualização no esquema do banco, enquanto o método _down_ é executado para desfazer esta atualização, retornando para uma versão anterior do esquema. Assim, seguindo o exemplo da nova tabela, no método _up_ deve ser construída uma sentença para criar esta tabela, enquanto o método _down_ seria utilizado para remover esta tabela.
Para atualizar o banco de dados a partir das _migrations_, execute um dos dois comandos abaixo.
```sh
npx knex migrate:latest
```
#### Materiais para estudos sobre Knex
- http://knexjs.org/
- https://devhints.io/knex
- <http://knexjs.org/>
- <https://devhints.io/knex>
### Configurando o banco de dados
No projeto, a instância PostgreSQL é executada em um container Docker, em um banco de dados chamado "autis". Para criar este container e executar o banco em um ambiente de desenvolvimento (localmente) ou em um ambiente de homologação, bem como para derrubar este container, basta realizar os passos abaixo:
No projeto, a instância PostgreSQL é executada em um container Docker, em um banco de dados chamado "autis". Para criar este container e executar o banco em um ambiente de desenvolvimento (localmente) ou em um ambiente de homologação, bem como para derrubar este container, basta realizar os passos abaixo:
- Certificar que você possui o Docker instalado:
- Windows: https://docs.docker.com/desktop/windows/install/
- Linux: https://docs.docker.com/engine/install/
- Windows: <https://docs.docker.com/desktop/windows/install/>
- Linux: <https://docs.docker.com/engine/install/>
- Executar [estes scripts](https://tools.ages.pucrs.br/autis/autis-backend/-/tree/main/scripts) presentes no repositório de Backend.
Além disso, para visualizar as tabelas do banco de dados, recomenda-se utilizar um cliente SQL tal como o [DBeaver Community](https://dbeaver.io/download/) ou o [Beekeeper Studio](https://www.beekeeperstudio.io/get) e se conectar ao banco.
\ No newline at end of file
Além disso, para visualizar as tabelas do banco de dados, recomenda-se utilizar um cliente SQL tal como o [DBeaver Community](https://dbeaver.io/download/) ou o [Beekeeper Studio](https://www.beekeeperstudio.io/get) e se conectar ao banco.
Clone repository
  • Instalação
  • Retro
  • Utilizando a wiki
    • adicionando imagens
    • escrevendo em markdown
    • wiki no editor de texto
  • arquitetura
  • banco_dados
  • codigo
  • configuracao
  • design_mockups
  • escopo
  • gerencia
  • gerencia_sprint_0
  • gerencia_sprint_1
  • gerencia_sprint_2
View All Pages