Skip to main content
Sonamu는 기본적으로 PostgreSQL을 사용합니다. 데이터베이스 인증 정보는 현재 환경에서 읽어 development, staging, production, test, fixture 같은 DB preset을 만듭니다.

필수 변수

.env.development
데이터베이스 비밀번호를 sonamu.config.ts에 하드코딩하지 마세요. .env 파일이나 배포 환경의 환경변수로 관리하세요.

데이터베이스 이름

Sonamu는 다음 순서로 데이터베이스 이름을 결정합니다.
  1. 현재 환경의 SONAMU_DB_NAME
  2. projectName 기반 자동 생성 이름
자동 생성 이름은 소문자 project name에 환경 suffix를 붙입니다.

sonamu.config.ts

이제 config에 database.name이나 database.environments를 둘 필요가 없습니다.
sonamu.config.ts
defaultOptions에는 pool, timeout, SSL 기본값, debug 설정처럼 모든 preset에 공통으로 적용할 Knex 옵션만 둡니다. host, port, user, password, database는 Sonamu가 SONAMU_DB_* 값으로 채웁니다.

환경별 파일

.env.development

읽기 전용 replica

환경에 별도 읽기 전용 DB가 있으면 SONAMU_DB_READONLY_* 값을 설정합니다. 없는 read-only 필드는 같은 환경의 main DB 값을 사용합니다.
.env.production
읽기 전용 쿼리에는 DB.getDB("r")을 사용합니다. NODE_ENV에 따라 development_readonly, staging_readonly, production_readonly, test_readonly로 해석됩니다.

Fixture 데이터베이스

Fixture 변수는 테스트 fixture DB에만 사용합니다.
.env.test
SONAMU_DB_FIXTURE_NAME이 없으면 Sonamu가 자동 생성한 fixture DB 이름을 사용합니다.