設定のエクスポート/インポート

特に大きな問題ではありませんが、site_settings:import を使用している際に小さな問題に遭遇し、それが 深刻な影響 を与えました。
簡単な(しかし醜い)回避策(rake タスクを2回実行する)はありますが、これは通常、無人で実行されるため、最初はエラーに気づきませんでした。

(一部の)エクスポートされた設定ファイル(site_settings:export

sso_overrides_email: 'true'
email_editable: 'false'

このファイルを別のフォーラムにインポートすると:

ERROR: sso_overrides_email: この設定を有効にする前に 'email editable' を無効にする必要があります。
Changed email_editable FROM: t TO: false

2回目の実行では、もちろん設定が反映されます:

Changed sso_overrides_email FROM: f TO: true

考えられる解決策:

  • そのまま受け入れ、インポート用の rake タスクを2回実行する
  • 設定を updated_at の順序でエクスポートする
  • rake タスクがインポートを2回実行するようにする
  • ファイルからのインポート時にはこの種のチェックを無効にする
「いいね!」 3

どの解決策が最も理にかなっていると思いますか?

はっきりしません。

という案は機能し、それほど手間もかからず、最も論理的ですが、設定が行われた後に追加の制限が実装された場合は依然として失敗します。

という案は機能しますが、人々にとって理にかなっているとは感じられないでしょう。

という案は非常に不格好ですが、機能します。

という案は、あらゆる種類の厄介な問題を引き起こす可能性があり、多大な手間がかかるかもしれません。

「いいね!」 2

これはうまくいかないと思います。

私にとって最も簡単な方法は、これを 2 回実行し、2 回目でエラーが発生したら中止することです。

とはいえ、「2 回実行する」だけのことではありません。

  1. 1 回目は実行し、設定する各設定項目でエラーをキャッチします。
  2. 2 回目はバッチで実行し、何か失敗したら中止します。

すでにこの混乱に対処している以上、複数の依存関係が絡んでいるケースも処理する必要があります。

また、クリーンなロールバックの可否も問題となるため、これは決して簡単な作業ではありません。

「いいね!」 2