설정 그룹(Config groups)

히드라 컨셉에서 가장 중요합니다.

당신은 PostgreSQL과 MySQL의 밴치마킹을 원한다고 가정합니다. 어플리케이션을 실행할 때, 당신은 MySQL 또는 PostgreSQL을 필요합니다. 그러나 둘 다 필요하지는 않습니다.

이 방법을 위해 히드라는 설정그룹를 이용합니다. 설정그룹은 상호배타적인 구성 파일 세트입니다.

설정그룹을 생성하기 위해 각각의 디비의 설정정보를 가진 디렉터리 db 를 생성합니다. 우리는 다수의 설정그룹을 가지고 있을것으로 예상되므로, 모든 설정파일을 conf으로 옮깁니다.

파이썬 파일: my_app.py

@hydra.main(config_path="conf")
def my_app(cfg):
    print(cfg.pretty())

config_pathTutorial-Simple command line example과 같이 설정 파일을 지정할 수 있습니다. 만약 config_path가 지정된 경우 그것은 최상위 디렉터리가 됩니다.

우리의 프로그램 디렉터리 구조는 보이는바와 같습니다.

├── conf
│   └── db
│       ├── mysql.yaml
│       └── postgresql.yaml
└── my_app.py

만약 당신이 이것을 실행한다면, 그것은 설정파일을 지정하지 않아 빈 설정값을 출력합니다.

$ python my_app.py
{}

당신은 명령어로부터 설정된 데이터베이스를 선택할 수 있습니다.

$ python my_app.py db=postgresql
db:
  driver: postgresql
  pass: drowssap
  timeout: 10
  user: postgre_user

전처럼, 당신은 설정파일을 재정의 할 수 있습니다.

$ python my_app.py db=postgresql db.timeout=20
db:
  driver: postgresql
  pass: drowssap
  timeout: 20
  user: postgre_user

이 것은 히드라의 강력한 간단한 예시입니다. 당신은 다수의 설정파일로 부터 컴포즈할 수 있습니다.