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

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Corriendo migraciones

16/33
Recursos

Aportes 4

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Lo que vimos fue:

package.json

"scripts": {
    "migrations:generate": "npm run typeorm -- migration:generate -n",
    "migrations:run": "npm run typeorm -- migration:run",
    "migrations:show": "npm run typeorm -- migration:show",
    "migrations:drop": "npm run typeorm -- migration:drop"
  },

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: false,
          autoLoadEntities: true,
        };
      },
    }),
  ],

Los comandos que utilisamos fueron:

Para crear la migration en la base de datos

npm run migrations:run

Para ver. quemigrations han sido creados

npm run migrations:run

Si le agregan el revert esta bueno experimentarlo, mas que nada para volver a atras los cambios en caso de que se haya detectado algun bug y tengas que salir a patchear la version que sacaste.

Agregas en el package.json

    "migrations:revert": "npm run typeorm -- migration:revert"

Este el output:

query: SELECT * FROM "information_schema"."tables" WHERE "table_schema" = current_schema() AND "table_name" = 'migrations'
query: SELECT * FROM "migrations" "migrations" ORDER BY "id" DESC
1 migrations are already loaded in the database.
init1621883836551 is the last executed migration. It was executed on Mon May 24 2021 16:17:16 GMT-0300 (Argentina Standard Time).
Now reverting it...
query: START TRANSACTION
query: DROP TABLE "user"
query: DROP TABLE "customer"
query: DROP TABLE "product"
query: DROP TABLE "category"
query: DROP TABLE "brand"
query: DELETE FROM "migrations" WHERE "timestamp" = $1 AND "name" = $2 -- PARAMETERS: [1621883836551,"init1621883836551"]
Migration init1621883836551 has been reverted successfully.
query: COMMIT

Un tip para el script de generar migraciones: agreguen el argumento -p (pretty) para que los comandos SQL autogenerados en el archivo de migraciones tengan un formato multilínea más fácil de leer.

# package.json
# ...
scripts:
	# ...
	"migrations_generate":  "npm run typeorm -- migration:generate -p -n"
# ...

Alguien mas en vez de drop puso hakai? xD