Algunas cosas en TypeORM son diferentes actualmente (versión 0.3.7) a como están la lección de Configurando migraciones y npm scripts
- Ya no existe documentación acerca de archivos de configuración como el
ormconfig.jsono las variables de entorno - Los comandos del CLI funciona de una manera diferente
Con respecto al CLI, yo hice estos cambios para que me funcione. Me parece que pueden ser mejorables pero no he encontrado una mejor manera de momento
Crear un archivo con una instancia de DataSource
Ahora el CLI te pide que al momento de correr un comando especifiques un archivo donde se encuentre una instancia de la clase DataSource
Yo tengo esto en src/database/dataSource.ts
import { DataSource } from 'typeorm';
exportconst connectionSource = new DataSource({
type: 'postgres',
host: 'localhost',
port: 5432,
username: 'root',
password: 'root',
database: 'my_db',
logging: true,
synchronize: false,
entities: ['src/**/*.entity.ts'],
migrations: ['src/database/migrations/*.ts'],
});
Cambios en los comandos del CLI
El comando typeorm en el package.json cambió al igual que el comando para generar las migraciones
"typeorm": "typeorm": "typeorm-ts-node-commonjs"
"migration:generate": "yarn typeorm migration:generate -d src/database/dataSource.ts"
Lo importante a notar acá es que:
- Usando el flag
-do--dataSourcese debe pasar el path donde tenemos nuestra instancia del DataSource que essrc/database/dataSource.tsen mi caso - El CLI ya no acepta el flag
-npara indicar el nombre con el que se creará el archivo con la migración - Para correr el comando
migration:generatees necesario especificar elpathdonde queremos que se cree la migración y así también especificar el nombre del archivo
Yo he corrido el comando de esta manera dondeinites el nombre que le estoy dando al archivo
yarn migration:generate src/database/migrations/init
Es importante notar que a diferencia de la lección, yo estoy usandoyarnen lugar denpm
Cosas a cambiar usandonpm: - En lugar de correr el comando con
yarnusarnpm run"migration:generate": "npm run typeorm migration:generate -d src/database/dataSource.ts"npm run migration:generate src/database/migrations/init
Recomendaciones
Estar atento a la documentación de TypeORM y Nestjs que actualmente se encuentra desactualizada en algunas secciones. Seguramente se publicará una mejor manera de hacer esto en el futuro ya que hacerlo de esta manera funciona pero se está creando 2 instancias de DataSource
- Una en
DatabaseModulecon elTypeOrmModule - Y otra con este nuevo archivo
Curso de NestJS: Persistencia de Datos con TypeORM
COMPARTE ESTE ARTÍCULO Y MUESTRA LO QUE APRENDISTE




