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

Migración a NestJS 9 y TypeORM 0.3

32

Actualizando Dependencias para NestJS 9

33

Cambios en TypeORM 0.3

34

Migraciones en TypeORM 0.3

Próximos pasos

35

Cómo solucionar una referencia circular entre módulos

36

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

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

19 Días
1 Hrs
56 Min
3 Seg

Sync Mode vs. Migraciones en TypeORM

14/36
Recursos

Aportes 5

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Formas de controlar los cambios en la base de datos

sync mode

flag synchronize: true esto hace que los cambios que hagamos sobre nuestro modelo de clases impacte directamente en las tablas.

recomendaciones

Solo sobre entorno de desarrollo y testing. En produccion es una practica riesgosa, porque cualquier cambio en el codigo, se pueda corromper la base de datos. Para eso se crearon las migraciones

Django

Dice que las migraciones es la forma que django propaga los modelos a las bases de datos

Laravel

son como un control de version de la bd permitiendo que el equipo pueda definir y compartir el esquema de la base de datos.

TypeORM

Las migraciones son solo un con query tipo sql con el esquema y los cambios aplicados (updates).

synchronize: true, //! Solo usar en development o testing, NO EN PRODUCCIÓN
# Sync mode vs migrations ## ¿Qué es Sync mode? Es la forma en la que veníamos trabajando para actualizar la base de datos. Es decir que TypeORM creaba las tablas de manera sincronizada con nuestros archivos de entities, es decir con nuestros schemas. Esto no es una buena practica para el ambiente de producción, debido a que cualquier cambio en los schemas podría corromper nuestra base de datos. Lo recomendable es crear las tablas o actualizar la base de datos mediante migraciones. ## ¿Qué son las migraciones? *Las migraciones son como un **git** para bases de datos **relacionales**, para no tener que reemplazar toda la base de datos sino solo agregar los cambios correspondientes.* Las migraciones son: > Las migraciones son la forma en que Django propaga cambios en los modelos y los refleja en el esquema de bases de datos. - Django. > Las migraciones son como un sistema de control de versiones para la base de datos. - Laravel. > Las migraciones son solo un con query tipo sql con el esquema y los cambios aplicados (updates). - TypeORM. Básicamente, las migraciones **mantienen el historial** del esquema que se lleva en la base de datos. Es un sistema muy usado en ambientes de producción para **trackear** los **cambios** sin tener que replicar todo nuevamente *(creación de tablas, llaves foráneas, etc)*. Es decir, permite saber en qué punto estaba para saber qué es lo que se tiene que modificar.

Sync Mode en TypeORM es una opción que se puede utilizar cuando se está trabajando con una base de datos de TypeORM. Sync Mode indica si TypeORM debe sincronizar la estructura de la base de datos con el modelo de entidades que se está utilizando. Si Sync Mode está habilitado, TypeORM comparará la estructura de la base de datos con el modelo de entidades y, si hay alguna diferencia, modificará la base de datos para que coincida con el modelo de entidades.

Las migraciones, por otro lado, son un proceso que se utiliza para realizar cambios en la estructura de una base de datos de manera controlada y documentada. Las migraciones se pueden utilizar para hacer cosas como agregar o eliminar tablas, modificar columnas existentes o agregar nuevas columnas a una tabla. Al utilizar migraciones, se puede tener un control más preciso sobre los cambios que se están realizando en la base de datos y revertir cambios si es necesario.

En general, Sync Mode es útil cuando se está trabajando en un entorno de desarrollo y se quiere que TypeORM se encargue de mantener la base de datos sincronizada con el modelo de entidades. Las migraciones, por otro lado, son más adecuadas para entornos de producción, ya que permiten un mayor control y documentación de los cambios que se realizan en la base de datos.

Yo entiendo las migraciones como otra forma de crear la estructura de la base de datos a medida que se desarrolla el backend. Sin embargo, no estoy seguro si en un ambiente de producción se trabaja de esta manera, es decir, creando la BD al vuelo. Más bien yo creería que la base de datos ya está desarrollada y si se modifica su estructura eso se hace desde la propia herramienta para administrar bd (pgamin, phpmyadmin)