like si también te asustaste con el sonido del minuto 1:08 jajaja
Introducción
Conexiones a Bases de Datos con Time OEM y NetsGIS
Integración de Datos con Next.js y Time ORM en Proyectos E-commerce
Database
Instalación de Docker en Windows, macOS y Ubuntu
Configuración de Postgres en Docker Compose
Conexión a Postgres en Docker: Terminal y PgAdmin
Conexión de NestJS a Postgres con Node Postgres
Inyección de Dependencias en NETJS: Conexión a PostgreSQL
Conexión a Bases de Datos con Variables de Entorno en Node.js
TypeORM
Implementación de TypeORM con NestJS en Proyectos Node.js
Creación de Entidades en ORM para Tiendas Virtuales
Implementación del Patrón Repository en NestJS con TypeORM
Operaciones CRUD en ProductService usando TypeORM y Postgres
Cambio de Postgres a MySQL en Docker para CRUD de Productos
Migraciones
Configuración de Migraciones en Bases de Datos con TimeORM
Configuración y uso de migraciones con TimeORM y TypeScript
Ejecución y gestión de migraciones con Time1M en Node.js
Migraciones en bases de datos: agregar campos automáticamente
Relaciones
Relaciones 1 a 1 en Bases de Datos con TimeORM
Manipulación de Relaciones Uno a Uno en Controladores y Servicios
Relaciones Uno a Muchos en Bases de Datos con TypeORM
Gestión de Relaciones Uno a Muchos en Controladores de API
Relaciones Muchos a Muchos en Time1M: Creación y Manejo Práctico
Manipulación de Relaciones Muchos a Muchos en Controladores
Manipulación de Relaciones Muchos a Muchos con TimeORM en JavaScript
Relaciones Muchos a Muchos con Campos Agregados en TimeWareM
CRUD de órdenes de compra y gestión de ítems en NestJS
Consultas
Paginación de Productos con Limit y Offset en Controladores API
Filtrado de Precios con Rango Usando Between en Time Wareham
Indexación de Parámetros en Bases de Datos: Uso y Precauciones
Buenas prácticas de nombramiento en JavaScript y bases de datos
Serialización y Transformación de Datos en APIs con ClassTransformer
Migración a NestJS 9 y TypeORM 0.3
Actualización de dependencias en NEST y TimeWareM
Migración y ajustes en TimewareM 0.3: Cambios en métodos y servicios
Actualización de Migraciones en TimeWareM 0.3
Próximos pasos
Soluciones a referencias circulares en módulos NestJS
Persistencia de Datos con Time Ware M: Conexiones y Buenas Prácticas
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
npm i pg
npm i @types/pg -D
// src/app.module.ts
import { Client } from 'pg';
const client = new Client({
user: 'root',
host: 'localhost',
database: 'my_db',
password: '123456',
port: 5432,
});
client.connect();
client.query('SELECT * FROM tasks', (err, res) => {
console.error(err);
console.log(res.rows);
});
Aportes 12
Preguntas 10
like si también te asustaste con el sonido del minuto 1:08 jajaja
Si al momento de ejecutar el sistema les aparece un error como este error: la autentificaci�n password fall� para el usuario �root�
una de las razones es que antes ya usamos postgres y tenemos el servicio corriendo en nuestro PC, para evitar ese conflicto podemos modificar el puerto que exponemos del contenedor docker, por ejemplo:
postgres:
image: postgres:13
environment:
- POSTGRES_DB=my_db
- POSTGRES_USER=root
- POSTGRES_PASSWORD=123456
ports:
- '5433:5432' # 👈🏻Acá le decimos que dentro del contenedor el puerto que usará es el 5432 y para que nosotros usemos fuera del contenedor le decimo que exponga el puerto 5433
volumes:
- ./postgres_data:/var/lib/postgresql/data
Ahora debemos modificar nuestra conexión a la bd de la siguiente manera
// app.module.ts
const client = new Client({
user: 'root',
host: 'localhost',
database: 'my_db',
password: '123456',
port: 5433, // 👈🏻 acá colocamos el puerto que estamos exponiendo del contenedor
});
De esta manera podemos seguir trabajando con nuestro contenedor, sin afectar al servicio postgres que teníamos anteriormente en nuestra PC.
Si vienes del futuro y estás siguiendo el curso con el repo del profesor, seguramente tendrás que hacer npm i [email protected] --legacy-peer-deps
para instalar la dependencia
Para no dejar las contraseñas en el docker file se puede hacer esto:
POSTGRES_DB:db
POSTGRES_USER:postgres
POSTGRES_PASSWORD:12334
DATABASE_PORT:1000
PGADMIN_DEFAULT_EMAIL:[email protected]
PGADMIN_DEFAULT_PASSWORD:1233
Y en el docker compose se pose
version: '3.3'
services:
postgresdb:
image: postgres:13
environment:
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${joddoc-8baxRi-sywzoz}
ports:
- '5432:5432'
volumes:
- ./postgres_data:/var/lib/postgresql/data
pgadmin:
image: dpage/pgadmin4
environment:
- PGADMIN_DEFAULT_EMAIL=${PGADMIN_DEFAULT_EMAIL}
- PGADMIN_DEFAULT_PASSWORD=${PGADMIN_DEFAULT_PASSWORD}
ports:
- "5050:80"
Si alguien tiene el siguiente error cuando intenta conectar con la base de datos:
(node:18280) UnhandledPromiseRejectionWarning: error: password authentication failed foruser “root”
La solución en Windows es ir a los servicios, buscar el servicio con el nombre “postgresql-x64-13 - PostgreSQL Server 13” dar click derecho y parar (stop).
Hola amigos. Para los usan la siguiente version
node --version
v18.15.0
nest --version
10.1.8
node-postgre
8.11.1
Tenia problemas en la conexión cuando configuraba tal cual el prof. indicaba.
muestro mi configuracion docker-compose.yml
version: '3.3'
services:
postgres:
image: postgres:14
environment:
- POSTGRES_DB=my_db_login
- POSTGRES_USER=root
- POSTGRES_PASSWORD=123456
ports:
- '5433:5432'
volumes:
- ./postgres_data:/var/lib/postgresql/data
pgadmin:
image: dpage/pgadmin4
environment:
- PGADMIN_DEFAULT_EMAIL=root@admin.com
- PGADMIN_DEFAULT_PASSWORD=root
ports:
- "5050:80"
y mi configuración del cliente:
const client = new Client({
user: ‘root’,
host: ‘localhost’,
database: ‘postgres’,
password: ‘123456’,
port: 5433,
});
client.connect();
client.query(‘SELECT NOW()’,(err,res)=>{
console.log(err);
console.log(res.rows);
});
Solo cambiando de my_db_login a postgres no me da error. Pero si quisiera agregar una nueva base de datos en mi mismo contenedor no se como lo llamaria desde el cliente. Esa es mi duda. Gracias antemano
Estaba teniendo un error a la hora de conectar a Postgres y revisando me di cuenta que ya lo tenóa instalado localmente. Recomiendo revisar si les aparece el mismo error. No vaya a ser que ya tengan Postgres localmente y no conecte a Docker.
en mi caso sale este error
(node:18280) UnhandledPromiseRejectionWarning: error: password authentication failed for user "root"
no se cual sea el error ya que tengo todo igual
ahí dice sobre el password pero como dije tengo el mismo 123456 lo mismo el el archivo .yml
Quiza a alguien le haya pasado lo mismo
Top ediciones de video mas zarpadas 😎🔥
Sí te salio el error
error: la autentificaci�n password fall� para el usuario �root�
Puede deverse a:
El usuario de tu servidor no es root, sino postgres.
El puerto se encuentra ocupado con otro programa.
En mi caso me aparecía el siguiente error:
Error: connect ECONNREFUSED 127.0.0.1:5432
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1161:16) {
errno: -111, code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 5432
Para solucionarlo, tuve que cambiar el puerto de la configuracion de Postgres y agregar la red a la cual iba a estar:
version: '3.3'
services:
postgres:
container_name: postgres
image: postgres:13
environment:
- POSTGRES_DB=my_db
- POSTGRES_USER=root
- POSTGRES_PASSWORD=123456
ports:
- "5432:5432"
volumes:
- ./postgres_data2:/var/lib/postgresql/data
networks:
- postgres
pgadmin:
image: dpage/pgadmin4
environment:
- [email protected]
- PGADMIN_DEFAULT_PASSWORD=root
ports:
- "5050:80"
networks:
- postgres
networks:
postgres:
driver: bridge
en mi app.module.ts
const client = new Client({
user: 'root',
host:'localhost',
password: '123456',
database: 'my_db',
port: 5432,
});
👏
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?