Vamos a tener 2 bases de datos en un container de Docker. La primera la vamos a usar exclusivamente para el desarrollo (dev). Por el otro lado, la segunda la vamos a usar solo para ejecutar tests (test). Esto evita interferencia entre las bases de datos.
Seguir este tutorial para instalarlo en Ubuntu. Tambien pueden bajarse Docker Desktop usando este link.
- Crear un nuevo archivo en la carpeta backend que se llame .env y otro que se llame .env.test
- Copiar los contenidos del archivo .env.template al archivo que creaste en el paso anterior
- En el archivo .env asignar el puerto 5434 para PostgreSQL. Por el otro lado, en el archivo .env.test asignar el puerto 5435 para PostgreSQL. (en DATABASE_URL).
- Reemplazar los valores entre "< >" por los que corresponda (espero que hayas guardado ese username y password 👀)
En la consola correr el comando
yarn db:dev:up
En la consola correr el comando
yarn prisma:dev:deploy
Para levantar el proyecto:
yarn start
Para ejecutar los tests, primero hay que inicializar la DB de test. Luego, ejecutamos el comando adecuado en base a que test queremos ejecutar (comandos)
- Documentacion oficial de NestJS
- Documentacion Prisma que es el ORM que vamos a estar usando.
- NestJS + Prisma
- Que es el .env???
Para levantar el proyecto.
Flags opcionales:
--watch
: Permite levantar el proyecto en modo watch (cada vez que se hace un cambio en el codigo, se reinicia el proyecto).
Levanta la base de datos de dev/test.
Elimina la base de datos de dev/test.
Elimina la base de datos de dev/test, luego la vuelve a crear y aplica las migraciones de Prisma.
Aplica las migraciones de Prisma a la base de datos de dev/test.
Si hicimos algun cambio al schema este comando actualiza prisma. Si ya corriste las migrations este comando ya se llamo.
Correr tests.
Correr tests end-to-end.
Flags opcionales:
--watch
: Permite correrlo en modo watch (los tests se ejecutan cada vez que se actualiza el codigo).
Abrir prisma studio para visualizar la base de datos.