Estoy trabajando en un proyecto nestjs usando Prisma y quiero usar varios archivos .env con Prisma. Sigo la guía aquí. Según la guía, agrego:
"migratetest:mysql": "dotenv -e .env.test -- npx prisma migrate dev", "migratedev:mysql": "dotenv -e .env.development -- npx prisma migrate dev" a mi paquete.json. migratetest:mysql para cargar el archivo .env.test y realizar la migración. Luego, ejecuto start: dev para iniciar la aplicación. Sin embargo, el Prisma dijo:
Error: error: Environment variable not found: DATABASE_URL. --> schema.prisma:10 | 9 | provider = "mysql" 10 | url = env("DATABASE_URL") |Parece que no puede encontrar el archivo .env en mi proyecto (según la guía, no hay ningún archivo .env, debería cambiar a .env.test y .env.development)
aquí está mi .env.test:
DATABASE_URL=mysql://root:123456@localhost:3306/testaquí está mi .env.desarrollo:
DATABASE_URL=mysql://root:123456@localhost:3306/devpor favor ayuda :)
Debe decirle a cada secuencia de comandos que tiene que usar dotenv cli, por lo que su start:dev debería verse así:
"start:dev": "dotenv -e .env.development nest start --watch",Sin embargo, para mí no está iniciando la compilación en modo reloj, todavía estoy tratando de depurar esto. ¿Algunas ideas?
EDITAR: Publiqué esto y 2 minutos después pude resolver mi problema: D La versión final del script debería verse así:
"start:dev": "dotenv -e .env.development -- nest start --watch",Motivo de la necesidad de dos guiones que se explican en los documentos de Prisma :
Nota: dotenv no pasa las banderas al comando Prisma de forma predeterminada, es por eso que el comando incluye dos guiones, antes de prisma, lo que permite usar banderas como --force, --schema o --preview-feature.