Вопрос о настройке SiteSettings в YAML-файле

В моем файле 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

Если вы проверите базу данных PostgreSQL для Discourse, то увидите, что существует таблица для настроек сайта и что большинство настроек сайта сохраняются в базе данных.

Так как вы не указали конкретные настройки сайта, которые вас интересуют, трудно дать точный ответ; но в целом, после того как эти настройки сайта установлены в базе данных, мало причин настраивать их при каждой пересборке в файле 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))
Введите "help" для справки.

discourse=# \dt *site*
             Список отношений
 Схема |     Имя      | Тип  |   Владелец   
--------+---------------+-------+-----------
 public | site_settings | таблица | discourse
 public | sitemaps      | таблица | discourse
(2 строки)

discourse=# select count(id) from site_settings;
 count 
-------
   141
(1 строка)

discourse=# 

Если вы сравните директивы настроек вашего сайта в файле yml с базой данных, то сможете довольно точно определить, какие из директив настроек сайта в вашем файле yml избыточны.

В принципе, от этих строк можно избавиться.

Это имеет смысл только в том случае, если ваша цель — создавать множество разных сайтов с этими настройками, при этом настройки будут сбрасываться при следующей сборке, если кто-то изменит их в UX.

Какую проблему вы пытаетесь решить, задавая эти настройки в вашем yml-файле?