我最近看到了一些设置迁移(最近的一次是删除了 automatic_backups_enabled),其中迁移仅使用数据库值来计算新值。这会忽略通过 app.yml 在 discourse.conf 中所做的任何设置。
代码:
INSERT INTO site_settings (name, data_type, value, created_at, updated_at)
SELECT 'backup_frequency', 3, NULL, 'NOW()', 'NOW()'
WHERE EXISTS (
SELECT 1
FROM site_settings
WHERE name = 'automatic_backups_enabled'
AND VALUE = 'f'
LIMIT 1
)
ON CONFLICT (name) DO UPDATE SET value = NULL, updated_at = 'NOW()';
这会忽略 discourse.conf 中的 automatic_backups_enabled = false,因此,当该设置存在时,不会保持备份禁用状态。
这艘船已经走了,但最好记住这种模式会导致全局覆盖的设置出现问题。