... | ... | @@ -17,8 +17,6 @@ Além disso, durante os encontros síncronos da equipe, foram discutidas as duas |
|
|
- [Esquema Lógico](#esquema-lógico)
|
|
|
- [Implementação](#implementação)
|
|
|
- [Knex](#knex)
|
|
|
- [Schemas](#schemas)
|
|
|
- [Postgrees](#postgrees)
|
|
|
|
|
|
## Modelagem
|
|
|
|
... | ... | @@ -34,17 +32,17 @@ 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), 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
|
|
|
npm run create-migration nome_da_migration
|
|
|
```
|
|
|
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.
|
|
|
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.
|
|
|
Para atualizar o banco de dados a partir das *migrations*, execute um dos dois comandos abaixo.
|
|
|
```sh
|
|
|
npx knex migrate:latest
|
|
|
npm run update-migrations
|
... | ... | @@ -54,10 +52,12 @@ npm run update-migrations |
|
|
- http://knexjs.org/
|
|
|
- https://devhints.io/knex
|
|
|
|
|
|
### Schemas
|
|
|
### Configurando o banco de dados
|
|
|
|
|
|
TBD
|
|
|
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/
|
|
|
- Executar [estes scripts](https://tools.ages.pucrs.br/autis/autis-backend/-/tree/main/scripts) presentes no repositório de Backend.
|
|
|
|
|
|
#### Postgrees
|
|
|
|
|
|
TBD |
|
|
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 |