Introducción

1

¿Ya terminaste el Curso de NestJS: Programación Modular?

2

Platzi Store: presentación del proyecto e instalación

Database

3

Cómo instalar Docker para este proyecto

4

Configuración de PostgresSQL en Docker

5

Explorando postgres con interfaces gráficas y terminal

6

Integración de node-postgres con NestJS

7

Conexión como inyectable y ejecutando un SELECT

8

Usando variables de ambiente

TypeORM

9

¿Qué es un ORM? Instalando y configurando TypeORM Module

10

Creando tu primera entidad

11

TypeORM: active record vs. repositories

12

Crear, actualizar y eliminar

13

Cambiar a Mysql demo (opcional)

Migraciones

14

Sync Mode vs. Migraciones en TypeORM

15

Configurando migraciones y npm scripts

16

Corriendo migraciones

17

Modificando una entidad

Relaciones

18

Relaciones uno a uno

19

Resolviendo la relación uno a uno en el controlador

20

Relaciones uno a muchos

21

Resolviendo la relación uno a muchos en el controlador

22

Relaciones muchos a muchos

23

Resolviendo la relación muchos a muchos en el controlador

24

Manipulación de arreglos en relaciones muchos a muchos

25

Relaciones muchos a muchos personalizadas

26

Resolviendo la relación muchos a muchos personalizada en el controlador

Consultas

27

Paginación

28

Filtrando precios con operadores

29

Agregando indexadores

30

Modificando el naming

31

Serializar

Próximos pasos

32

Cómo solucionar una referencia circular entre módulos

33

Continúa con el Curso de NestJS: Autenticación con Passport y JWT

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Configurando migraciones y npm scripts

15/33
Recursos

Aportes 7

Preguntas 8

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Lo que vimos:

No olviden ajustarlo a sus datos
.env

TYPEORM_CONNECTION = postgres
TYPEORM_HOST = localhost
TYPEORM_USERNAME = root
TYPEORM_PASSWORD = 123456
TYPEORM_DATABASE = my_db
TYPEORM_PORT = 5432
TYPEORM_SYNCHRONIZE = false
TYPEORM_LOGGING = true
TYPEORM_ENTITIES = src/**/*.entity.ts

TYPEORM_MIGRATIONS = src/database/migrations/*.ts
TYPEORM_MIGRATIONS_DIR = src/database/migrations
TYPEORM_MIGRATIONS_TABLE_NAME = migrations

package.json

"scripts": {
    "typeorm": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js",
    "migrations:generate": "npm run typeorm -- migration:generate -n"
  },

Comando para generar la migration

npm run migrations:generate -- init

Si realizaron el test de mysql, no olviden regresarlo a postgres.

database.module.ts

imports: [
    TypeOrmModule.forRootAsync({
      inject: [config.KEY],
      useFactory: (configService: ConfigType<typeof config>) => {
        const { user, password, host, dbName, port } = configService.postgres;

        return {
          type: 'postgres',
          host,
          port,
          username: user,
          password,
          database: dbName,
          synchronize: true,
          autoLoadEntities: true,
        };
      },
    }),
  ],

Para evitar futuros dolores de cabeza en sus despliegues, traten de definir siempre sus variables de entorno en archivos .env sin dejar espacios antes/después del signo igual:

# Eviten esto 🚫
TYPEORM_CONNECTION = postgres

# Así es mejor ✔️
TYPEORM_CONNECTION=postgres

Si tienen el error de:

Not enough non-option arguments: got 0, need at least 1

Recomiendo bajar la versión de typeORM a la 0.2.45

npm remove typeorm 
npm install [email protected]0.2.45 --save

Revisando una librería que utilizo de algún tiempo atrás para general las entidades, me he encontrado con esto: https://github.com/Kononnable/typeorm-model-generator/issues/329

Básicamente dice que el futuro de TypeORM es incierto, con errores y un mantenimiento muy pobre, otro artìculo sobre el tema está acá. https://news.ycombinator.com/item?id=26888369

Tengo problemas para generar las migraciones!

Me aparece el siguiente error: Falta argumento requerido: dataSource.

Alguien que me ayude con esto?

Me funciono esta configuración en mi package.json:

    "typeorm": "node --require ts-node/register ./node_modules/typeorm/cli.js",
    "migration:generate": "npm run typeorm -- migration:generate -n"

Para los que tuvieron problemas en la migración, revisen que tenga node 12 o superior, en mi caso con wsl use https://github.com/nodesource/distributions/blob/master/README.md para instalar la version 17 aunque creo que debí instalar la 15