Fue buena idea Nico que el curso sea con Postgres y no con MySQL ya que muchos cursos son siempre con ese motor. Está bueno la variante de conocer algo de Postgres. Saludos!
Introducción
¿Ya terminaste el Curso de NestJS: Programación Modular?
Platzi Store: presentación del proyecto e instalación
Database
Cómo instalar Docker para este proyecto
Configuración de PostgresSQL en Docker
Explorando postgres con interfaces gráficas y terminal
Integración de node-postgres con NestJS
Conexión como inyectable y ejecutando un SELECT
Usando variables de ambiente
TypeORM
¿Qué es un ORM? Instalando y configurando TypeORM Module
Creando tu primera entidad
TypeORM: active record vs. repositories
Crear, actualizar y eliminar
Cambiar a Mysql demo (opcional)
Migraciones
Sync Mode vs. Migraciones en TypeORM
Configurando migraciones y npm scripts
Corriendo migraciones
Modificando una entidad
Relaciones
Relaciones uno a uno
Resolviendo la relación uno a uno en el controlador
Relaciones uno a muchos
Resolviendo la relación uno a muchos en el controlador
Relaciones muchos a muchos
Resolviendo la relación muchos a muchos en el controlador
Manipulación de arreglos en relaciones muchos a muchos
Relaciones muchos a muchos personalizadas
Resolviendo la relación muchos a muchos personalizada en el controlador
Consultas
Paginación
Filtrando precios con operadores
Agregando indexadores
Modificando el naming
Serializar
Migración a NestJS 9 y TypeORM 0.3
Actualizando Dependencias para NestJS 9
Cambios en TypeORM 0.3
Migraciones en TypeORM 0.3
Próximos pasos
Cómo solucionar una referencia circular entre módulos
Continúa con el Curso de NestJS: Autenticación con Passport y JWT
Crea una cuenta o inicia sesión
¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera
Nicolas Molina
//.gitignore
*.env
/postgres_data
# docker-compose.yml
version: '3.3'
services:
postgres:
image: postgres:13
environment:
- POSTGRES_DB=my_db
- POSTGRES_USER=root
- POSTGRES_PASSWORD=123456
ports:
- '5432:5432'
volumes:
- ./postgres_data:/var/lib/postgresql/data
docker-compose up -d postgres
docker-compose ps
docker-compose down
Aportes 13
Preguntas 4
Fue buena idea Nico que el curso sea con Postgres y no con MySQL ya que muchos cursos son siempre con ese motor. Está bueno la variante de conocer algo de Postgres. Saludos!
Es mas performante crear un volumen en vez de hacer un bind-mount. A quien le interese puede informarse mas del tema en:
https://blog.logrocket.com/docker-volumes-vs-bind-mounts/
aqui va mi docker-compose modificado:
version: '3.3'
services:
postgres:
image: postgres:13
environment:
- POSTGRES_DB=my_db
- POSTGRES_USER=root
- POSTGRES_PASSWORD=123456
ports:
- '5432:5432'
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data: {}
El curso va genial hasta el momento. Es un gran plus utilizar docker.
Los comandos que me funcionaron en el docker en mac fueron:
docker compose up -d postgres
docker compose ps
docker compose down
Recuerden que NO DEBEN SUBIR sus variables de entorno a git, por eso les recomiendo que en lugar de agregar una a una dichas variables en el archivo de compose, lo mejor es cargar a nuestro contenedor el archivo .env con todas nuestras variables, para ello, deben hacerlo de la siguiente manera:
version: '3.3'
services:
postgres:
image: postgres:13
env_file:
- <NAME>.env
ports:
- '5432:5432'
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data: {}
NO OLVIDEN REEMPLAZAR <NAME> por el nombre de su archivo
IMPORTANTE: En el minuto 4:20 aprox, Nico menciona que el puerto 5432 es el puerto en el corre Docker por defecto, pero en realidad, es el puerto por defecto que usa PostgreSQL.
En este punto Nico menciona que el puerto 5432 es el puerto en el corre Docker por defecto, pero en realidad, es el puerto por defecto que usa PostgreSQL.
Fue muy buena esta clase, no había montado un Docker y en otros videos veía difícil la configuración pero aquí me pareció muy sencillo
version: '3.3'
services:
postgres:
image: postgres:14
env_file:
- .env
ports:
- '5432:5432'
volumes:
- ./postgres_data:/var/lib/postgresql/mydata
volumes:
postgres_data: {}
Antes de ejecutar el comando docker-compose up -d postres
es importante levantar el servicio con ```
sudo service docker start
ERROR: for postgres Cannot start service postgres: driver failed programming external connectivity on endpoint nest_typeorm_postgres_1 (bfba7d603b5ba2b8c4cf17928466d102f705be3030bbda4a785b6b3484daec13): Error starting userland proxy: listen tcp4 0.0.0.0:5432: bind: address already in use
ERROR: Encountered errors while bringing up the project.
Para los que le aparece este error y usan linux, aca esta el comando con el que lo pude solucionar.
sudo service postgresql stop
Si son usuarios Ubuntu, como yo, usen ‘sudo’ antes de cualquier comando relacionado a Docker. De no hacer esto, seguro les arroja un error en la terminal, así que es sencillo de corregir.
👏
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?