환경변수 설정

기본적으로 schema.prisma 파일에 datasource db의 url은 env파일에 저장되어 있다.

공식 문서에 따르면 prisma는 해당 순서대로 env 파일을 찾는다

  1. 프로젝트의 루트 폴더
  2. --schema 인수로 지정된 스키마와 동일한 폴더 
  3. package.json의 "prisma" 섹션에서 지정된 스키마의 폴더 ("prisma": {"schema": "/path/to/schema.prisma"})
  4. prisma 폴더

 

제일 기본적으로 프로젝트의 루트 디렉토리에 .env파일을 두면 되지만, env파일이 개발환경에 따라 여러 개 존재하는 경우가 많다. 나 역시 아래 이미지와 같이 local, dev, prod 세개의 env파일이 존재했다.


 

여러 개의 환경변수 설정

이 역시 공식문서의 "Using multiple .env files"에 아주 잘 정리되어 있다.

dotenv-cli를 설치한다. 

npm install dotenv-cli

dotenv와 dotenv-cli 둘 다 환경변수를 로드하기 위한 도구이지만 약간의 차이가 있다.

  • dotenv: dotenv는 Node.js 애플리케이션의 코드 내에서 환경 변수를 로드하기 위해 사용된다. require('dotenv'). config()와 같이 코드 내에서 직접 호출하여 사용한다. 
  • dotenv-cli: dotenv-cli는 명령줄 인터페이스를 통해 사용된다. 즉, 터미널에서 직접 사용하여 환경 변수를 설정하고 실행하는 데에 주로 사용된다.

 

이제 package.json으로 가서 scripts 설정을 해주면 된다.

"scripts": {
    "start:dev": "dotenv -e envs/.env.dev -- npx prisma migrate deploy && 애플리케이션 실행 스크립트",
    "start:local": "dotenv -e envs/.env.local -- npx prisma migrate deploy && 애플리케이션 실행 스크립트",
  },

 

 

 

 

 

개인 기록용입니다. 만약 잘못된 부분이 있다면 댓글로 알려주신다면 감사하겠습니다!

 


REFERENCE

https://www.prisma.io/docs/orm/more/development-environment/environment-variables/env-files

 

.env files | Prisma Documentation

Configure environment variables using .env files in Prisma

www.prisma.io

https://www.prisma.io/docs/orm/more/development-environment/environment-variables/using-multiple-env-files