RGJ
(Richard - Communiteq)
1
没什么大问题,但我在运行 site_settings:import 时遇到了一个小麻烦,结果却让我吃了大亏。
有一个简单但丑陋的变通方法(运行两次 rake 任务),但这通常是在无人值守的情况下执行的,所以我一开始并没有注意到错误。
(部分)导出的设置文件(site_settings:export):
sso_overrides_email: 'true'
email_editable: 'false'
将该文件导入到另一个论坛时:
ERROR: sso_overrides_email: 启用此设置前必须先禁用“可编辑邮箱”。
已将 email_editable 从:t 更改为:false
第二次运行自然会检测到该设置:
已将 sso_overrides_email 从:f 更改为:true
可能的解决方案:
- 接受现状,直接运行两次导入 rake 任务
- 按
updated_at 顺序导出设置
- 让 rake 任务自动运行两次导入
- 在从文件导入时禁用此类检查
3 个赞
RGJ
(Richard - Communiteq)
3
我不确定。
这个方法可行,不需要太多精力,也最合乎逻辑,但如果设置完成后又实施了额外的限制,它仍然会失败。
这个方法可行,但难以让人理解。
这确实很丑陋,但能奏效。
可能会引入各种棘手的问题,并且可能需要耗费大量精力。
2 个赞
sam
(Sam Saffron)
4
我认为这行不通。
对我来说,最简单的做法是运行两次:如果第二次运行出错,就直接中止。
不过,这并不像“运行两次”那么简单:
- 第一次运行时,捕获设置任何特定配置项时出现的错误。
- 第二次运行时,以批量方式执行,如果任何部分失败则中止。
既然我们已经要处理这种混乱情况,就必须应对存在多个依赖关系的场景。
此外,还需要考虑如何干净地回滚,因此这绝非一项简单的任务。
2 个赞