NODE_ENV, projectName, SONAMU_DB_* 환경변수로 DB preset을 생성합니다. 기존
database.name과 database.environments 필드는 더 이상 지원하지 않습니다.
기본 구조
database
사용할 PostgreSQL 드라이버를 지정합니다. 타입:"pg" | "pgnative" (선택)
기본값: "pg"
"pg": 순수 JavaScript PostgreSQL 드라이버입니다. 대부분의 프로젝트에 권장합니다."pgnative": C 바인딩 기반 네이티브 드라이버입니다. 필요한 경우와 플랫폼 요구사항을 감당할 수 있는 경우에만 사용하세요.
defaultOptions
생성되는 모든 preset에 공통으로 적용할 Knex 옵션입니다.SONAMU_DB_*에서 채웁니다. defaultOptions.connection에는 SSL
설정처럼 모든 환경에 공통으로 적용할 연결 옵션만 두세요. host, port, user, password, database
값은 로드된 환경 안에서만 사용됩니다.
Dotenv 로딩
sonamu.config.ts를 import하기 전에 Sonamu는 현재 환경에 대해 다음 순서로 dotenv 값을 적용합니다.
.env.env.${NODE_ENV}.env.local- export된 process 환경변수
NODE_ENV 값은 test, development, staging, production입니다. 값이 없으면
development를 사용합니다.
데이터베이스 변수
SONAMU_DB_NAME이 있으면 그 값을 사용합니다.- 없으면
${projectName}_${environment}를 생성합니다. - fixture DB는
${projectName}_fixture를 사용합니다.
Preset
Sonamu는 다음 preset을 생성합니다.DB.getDB("w")는 현재 환경의 main preset으로 해석됩니다. DB.getDB("r")은 현재 환경의
read-only preset으로 해석됩니다.
읽기 전용 replica
읽기 전용 replica는SONAMU_DB_READONLY_* 변수를 사용합니다. 없는 read-only 필드는 현재 환경의
main connection 값을 사용합니다.
.env.production
Fixture DB
Fixture DB 설정은SONAMU_DB_FIXTURE_* prefix를 사용합니다.
.env.test
SONAMU_DB_* 값을 사용합니다.
제거된 필드
다음 필드는 더 이상 지원하지 않습니다..env, .env.development, .env.staging, .env.production, .env.test의
SONAMU_DB_*, SONAMU_DB_READONLY_*, SONAMU_DB_FIXTURE_* 변수로 옮기세요.