En mi archivo app.yml tengo muchas (~80) declaraciones como las siguientes:
- exec: rails r "SiteSetting.some_setting=false"
- exec: rails r "SiteSetting.some_other_setting=0"
- exec: rails r "SiteSetting.a_third_setting=0"
Esto parece poco práctico (hacer cada declaración por separado). ¿Existe una forma mejor de lograrlo? ¿Estoy acumulando sobrecarga innecesaria en mi proceso de reconstrucción? ¿O esta es la forma correcta de hacerlo? Gracias de antemano.
Si revisas la base de datos PostgreSQL de Discourse, verás que existe una tabla para la configuración del sitio y que la mayoría de estas configuraciones se persisten (guardan) en la base de datos.
Dado que no especificaste exactamente qué configuraciones del sitio te interesan, es difícil dar una respuesta precisa; pero, en general, una vez que estas configuraciones del sitio se establecen en la base de datos, hay pocas razones para volver a definirlas en cada reconstrucción en el archivo yml.
Por supuesto, esto no aplica a las configuraciones del sitio personalizadas que no se persisten en la base de datos.
Espero que esto te ayude.
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))
Escribe "help" para obtener ayuda.
discourse=# \dt *site*
List of relations
Schema | Name | Type | Owner
--------+---------------+-------+-----------
public | site_settings | table | discourse
public | sitemaps | table | discourse
(2 filas)
discourse=# select count(id) from site_settings;
count
-------
141
(1 fila)
discourse=#
Si comparas las directivas de configuración del sitio en tu archivo yml con la base de datos, podrás tener una idea bastante clara de cuáles de tus directivas en el archivo yml son redundantes.
Solo tiene sentido hacer eso si tu propósito es poder crear un montón de sitios diferentes que tengan esas configuraciones, y que esas configuraciones se borren en la próxima reconstrucción si alguien las modifica en la UX.
¿Qué problema estás tratando de resolver al establecer esos valores en tu archivo yml?