QPANC - Parte 2 - PostgreSQL
Tags: quasar, postgres, aspnetcore, docker
Published: 2020-04-19 23:35:27

> **QPANC** são as iniciais de **Q**uasar **P**ostgreSQL **A**SP **N**ET **C**ore.

  * [Source](https://github.com/TobyMosque/qpanc)
  * [Introdução](https://dev.to/quasar-pt-br/arquiteturando-uma-aplicacao-com-quasar-postgresql-asp-net-core-e-docker-introducao-o7o)
  * [Parte I - ASP.NET - Inicializando os Projetos](https://dev.to/quasar-pt-br/qpanc-parte-1-asp-net-inicializando-os-projetos-lkm)
  * [Parte 2 - PostgreSQL](https://dev.to/quasar-pt-br/qpanc-parte-2-postgresql-51pb)
  * [Parte 3 - ASP.NET - Registrando Serviços e Lendo Variáveis de Ambiente](https://dev.to/quasar-pt-br/qpanc-parte-3-asp-net-registrando-servicos-e-lendo-variaveis-de-ambiente-3do2)
  * [Parte 4 - ASP.NET - Entity Framework e ASP.NET Core Identity](https://dev.to/quasar-pt-br/qpanc-parte-4-asp-net-entity-framework-e-asp-net-core-identity-40f9)
  * [Parte 5 - ASP.NET - Documentação Interativa com Swagger](https://dev.to/quasar-pt-br/qpanc-parte-5-asp-net-documentacao-interativa-com-swagger-4n0o)
  * [Parte 6 - ASP.NET - Regionalização](https://dev.to/quasar-pt-br/qpanc-parte-6-asp-net-regionalizacao-13p5)
  * [Parte 7 - ASP.NET - Autenticação e Autorização](https://dev.to/quasar-pt-br/qpanc-parte-7-asp-net-autenticacao-e-autorizacao-bpd)
  * [Parte 8 - ASP.NET - CORS](https://dev.to/quasar-pt-br/qpanc-parte-8-asp-net-cors-52dn)
  * [Parte 9 - Quasar - Criação e Configuração do Projeto](https://dev.to/quasar-pt-br/qpanc-parte-9-quasar-criacao-e-configuracao-do-projeto-5hbi)
  * [Parte 10 - Quasar - Configurações e Customizações](https://dev.to/quasar-pt-br/qpanc-parte-10-quasar-configuracoes-e-customizacoes-2i86)
  * [Parte 11 - Quasar - Componentes - Diferença entre SPA e SSR](https://dev.to/quasar-pt-br/qpanc-parte-11-quasar-componentes-diferenca-entre-spa-e-ssr-1a3c)
  * [Parte 12 - Quasar - Serviços](https://dev.to/quasar-pt-br/qpanc-parte-12-quasar-servicos-4e61)
  * [Parte 13 - Quasar - Regionalização e Stores](https://dev.to/quasar-pt-br/qpanc-parte-13-quasar-regionalizacao-e-stores-1kep)
  * [Parte 14 - Quasar - Consumindo a API](https://dev.to/quasar-pt-br/qpanc-parte-14-quasar-consumindo-a-api-fn6)
  * [Parte 15 - Quasar - Login](https://dev.to/quasar-pt-br/qpanc-parte-15-quasar-login-jc6)
  * [Parte 16 - Quasar - Áreas Protegidas](https://dev.to/quasar-pt-br/qpanc-parte-16-quasar-areas-protegidas-3jkn)
  * [Parte 17 - Quasar - Registro](https://dev.to/quasar-pt-br/qpanc-parte-17-quasar-registro-3b8c)
  * [Parte 18 - Docker - Maquina Virtual Linux](https://dev.to/quasar-pt-br/qpanc-parte-18-docker-maquina-virtual-linux-g5c)
  * [Parte 19 - Docker - Registro e Build](https://dev.to/quasar-pt-br/qpanc-parte-19-docker-registro-e-build-31i4)
  * [Parte 20 - Docker - Traefik e Publicação](https://dev.to/quasar-pt-br/qpanc-parte-20-docker-traefik-e-publicacao-3g3d)
  * [Demo Online](https://qpanc.tobiasmesquita.dev)

##5 PostgreSQL

O nosso próximo passo, é criar uma adicionar uma instancia do PostgreSQL ao nosso container (docker), para tal, iremos editar o arquivo docker-compose.yml

```
version: '3.4'

services:
  qpanc.api:
    image: ${DOCKER_REGISTRY-}qpancapi
    build:
      context: .
      dockerfile: QPANC.Api/Dockerfile
    networks:
      - qpanc.network

  qpanc.database:
    image: postgres:latest
    ports:
      - "34514:5432"
    restart: always
    networks:
      - qpanc.network

networks:
  qpanc.network:
```

então edite o `docker-compose.override.yml`, adicionando as demais propriedades

```
services:
  qpanc.api:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
    ports:
      - "34512:80"
      - "34513:443"
    volumes:
      - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
      - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro

  qpanc.database:
    volumes:
      - ./database:/var/lib/postgresql/database
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=keepitsupersecret
      - POSTGRES_DB=postgres
```

Agora, para testar se o banco de dados está acessível, iremos iniciar a aplicação para que o container seja configurado, então poderemos utilizar o Azure Data Tools para que possamos conectar no PostgreSQL.

Porém, antes de continuamos, verifique se a extensão PostgreSQL está instalada.

![PostgreSQL Extension](https://dev-to-uploads.s3.amazonaws.com/i/5i25oaqkvrjjw0y0gx59.png)

Então, adicione uma conexão para o PostgreSQL

![PostgreSQL Connection](https://dev-to-uploads.s3.amazonaws.com/i/ej16azd0bk5t5wzrrgk2.png)
![PostgreSQL Connection](https://dev-to-uploads.s3.amazonaws.com/i/4o8x0jfr7irvt8b15dlp.png)
![PostgreSQL Port](https://dev-to-uploads.s3.amazonaws.com/i/cbd5rzwvrngin2x9l37g.png)

Feito isto, você estará conectado ao PostgreSQL, e poderá executar queries

![PostgreSQL Query](https://dev-to-uploads.s3.amazonaws.com/i/qie3i3cm0zcwoldrr3gc.png)