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