2
respostas

Ajuda para subir em uma instância EC2 da aws

Consegui configurar a intância e subir as imagens no docker mas quando rodo as migrações com o comando:

typeorm-ts-node-esm -d ~/app/nestjs-migrations-orm/dist/db/data-source-cli.js migration:show

Recebo o seguinte erro:

error: database "db_loja" does not exist

Então acesso meu BD:

sudo docker exec -it nestjs-migrations-orm-postgres-1 bash

Acesso meu usuário:

psql -U docker

\l para listar:

  Name    | Owner  | Encoding |  Collate   |   Ctype    | ICU Locale | Locale Provider | Access privileges 
-----------+--------+----------+------------+------------+------------+-----------------+-------------------
 docker    | docker | UTF8     | en_US.utf8 | en_US.utf8 |            | libc            | 
 postgres  | docker | UTF8     | en_US.utf8 | en_US.utf8 |            | libc            | 
 template0 | docker | UTF8     | en_US.utf8 | en_US.utf8 |            | libc            | =c/docker        +
           |        |          |            |            |            |                 | docker=CTc/docker
 template1 | docker | UTF8     | en_US.utf8 | en_US.utf8 |            | libc            | =c/docker        +
           |        |          |            |            |            |                 | docker=CTc/docker
           

Poerm o BD realmente não está lá!

Tento executar via linha de comando:

create database db_loja

Porém não cria!

Arquivos de configuração: ormconfig.json:

{
  "type": "postgres",
  "port": 65432,
  "host": "localhost",
  "username": "docker",
  "password": "DMA39@braz",
  "database": "db_loja",
  "migrations": ["./dist/db/migrations/*.js"],
  "entities": ["./dist/**/*.js"],
  "cli": {
    "migrationsDir": "./dist/db/migrations"
  }
}

.env:

DB_HOST=localhost
DB_PORT=65432
DB_USERNAME=docker
DB_PASSWORD=minhasenha
DB_NAME=db_loja
DB_ADMIN_EMAIL=admin@root.com

docker-compose.yaml:

version: '3.5'

services:
  postgres:
    image: postgres:latest
    environment:
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      PGDATA: /data/postgres
    volumes:
       - postgres:/data/postgres
    ports:
      - "5432:5432"
    networks:
      - postgres
    restart: unless-stopped

  pgadmin:
    image: dpage/pgadmin4
    environment:
      PGADMIN_DEFAULT_EMAIL: ${DB_ADMIN_EMAIL}
      PGADMIN_DEFAULT_PASSWORD: ${DB_PASSWORD}
    ports:
      - "8081:80"
    depends_on:
      - postgres
    networks:
      - postgres

networks:
  postgres:
    driver: bridge

volumes:
    postgres:

O que será que estou fazendo de errado?

2 respostas

Oi Frederic! Tudo bem com você?

Como este curso trata-se de uma continuação de outros cursos, primeiramente lhe indico que faça esses cursos para não faltar dados, informações ou configurações importantes que foram feitas durantes esses outros cursos, como a criação do banco de dados que o seu erro relata.

Os cursos em questão são esses:

Caso queira apenas saber como criar o banco, nesta atividade, de outro curso, é explicado: Preparando o ambiente: configurando o pgAdmin.

Porém, recomendo fortemente que faça os cursos anteriores para não ficar lacunas no conhecimento e dificuldades em executar o projeto.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

A porta do postgres, informado no .env e no docker-compose, estao divergentes (65432 vs 5432).