설정 내보내기/가져오기

별다른 큰 문제는 아니지만, site_settings:import를 사용하면서 작은 문제에 부딪혔고, 그 영향이 꽤 컸습니다.
간단하고 다소 우습은 우회 방법(레이크 태스크를 두 번 실행)이 있지만, 보통 이 작업은 무인 상태로 실행되기 때문에 처음에는 오류를 발견하지 못했습니다.

(일부) 내보낸 설정 파일(site_settings:export)

sso_overrides_email: 'true'
email_editable: 'false'

해당 파일을 다른 포럼으로 가져오면:

ERROR: sso_overrides_email: 이 설정을 활성화하기 전에 'email editable'를 비활성화해야 합니다.
Changed email_editable FROM: t TO: false

두 번째 실행에서는 당연히 해당 설정이 반영됩니다:

Changed sso_overrides_email FROM: f TO: true

가능한 해결 방법:

  • 이를 감수하고 가져오기 레이크 태스크를 두 번 실행
  • 설정을 updated_at 순서로 내보내기
  • 레이크 태스크가 가져오기를 두 번 실행하도록 설정
  • 파일에서 가져올 때 이러한 종류의 검사를 비활성화
3개의 좋아요

어떤 해결책이 가장 합리적이라고 생각하시나요?

확신은 없습니다.

은 작동하며, 큰 노력도 들지 않고 가장 논리적인 방법이지만, 설정이 완료된 후에 추가적인 제한 사항이 구현되면 여전히 실패할 수 있습니다.

은 작동하지만 사람들에게는 이해가 가지 않을 것입니다.

은 정말 보기 안 좋지만 작동은 합니다.

은 온갖 불쾌한 문제를 일으킬 수 있고 상당한 노력이 필요할 수 있습니다.

2개의 좋아요

이 방식이 작동하지 않을 것 같습니다.

제 생각에는 가장 간단한 방법은 두 번 실행하는 것입니다. 두 번째 실행 시 오류가 발생하면 중단(bail out)하면 됩니다.

그러나 단순히 "두 번 실행한다"는 것만큼 자명하지는 않습니다.

  1. 첫 번째 실행 시 설정한 각 설정 항목에 대해 오류를 포착합니다.
  2. 두 번째 실행 시에는 일괄(batch)로 실행하고, 아무것도 실패하면 중단합니다.

이미 이 복잡한 상황을 처리하고 있다면, 여러 의존성이 동시에 발생하는 경우도 처리해야 합니다.

또한 깨끗한 롤백(clean rollback)에 대한 문제도 있으므로, 이는 결코 자명한 작업이 아닙니다.

2개의 좋아요