YAML 파일에서 SiteSettings 설정 관련 질문

app.yml 파일에 다음과 같은 문구가 여러 개(약 80개) 있습니다.

  - exec: rails r "SiteSetting.some_setting=false"
  - exec: rails r "SiteSetting.some_other_setting=0"
  - exec: rails r "SiteSetting.a_third_setting=0"

(각 문구를 개별적으로 작성하는 것이) 좀 멍청해 보입니다. 더 나은 방법이 있을까요? 재빌드 과정에 불필요한 오버헤드가 쌓이는 건가요? 아니면 이것이 올바른 방식인가요? 미리 감사드립니다.

안녕하세요 @maggiomj

Discourse의 PostgreSQL 데이터베이스를 확인해 보시면 사이트 설정을 위한 테이블이 있으며, 대부분의 사이트 설정이 데이터베이스에 영속화(저장)되어 있다는 것을 알 수 있습니다.

관심 있는 정확한 사이트 설정을 지정하지 않으셨기 때문에 정확한 답변을 드리기 어렵지만, 일반적으로 이러한 사이트 설정이 데이터베이스에 설정된 후에는 yml 파일에서 각 재빌드 시마다 설정할 이유가 거의 없습니다.

물론 데이터베이스에 영속화되지 않는 사용자 정의 사이트 설정에는 해당하지 않습니다.

도움이 되셨으면 좋겠습니다.

a_server:~# docker exec -it data bash
a_server-data:/# su postgres
postgres@a_server-data:/$ psql discourse
psql (12.2 (Debian 12.2-2.pgdg100+1))
Type "help" for help.

discourse=# \dt *site*
             List of relations
 Schema |     Name      | Type  |   Owner   
--------+---------------+-------+-----------
 public | site_settings | table | discourse
 public | sitemaps      | table | discourse
(2 rows)

discourse=# select count(id) from site_settings;
 count 
-------
   141
(1 row)

discourse=# 

yml 파일의 사이트 설정 지시문을 데이터베이스와 비교해 보시면, yml 사이트 설정 지시문 중 어떤 것이 중복되는지 상당히 잘 파악할 수 있습니다.

기본적으로 그 줄들을 제거할 수 있습니다.

그런 설정들을 가진 여러 사이트를 만들 수 있어야 하고, 누군가가 UX에서 그 설정들을 변경하면 다음 재빌드 시 지워지도록 하는 것이 목적이라면 그렇게 하는 것이 의미가 있습니다.

yml 파일에 그 설정들을 지정하려는 이유는 어떤 문제를 해결하려는 건가요?