안녕하세요!
현재 2.9.0.beta4 버전으로 인스턴스를 실행 중인데, 이식을 해야 해서 기본적인 백업/복원 작업을 수행했습니다. 하지만 새 인스턴스에서 복원이 실패했습니다. 그래서 원래 인스턴스를 업데이트해 보려고 했으나, 이것도 실패했습니다. 두 작업 모두 db:migrate 명령어 실행 중, 동일한 원인으로 인해 실패한 것으로 보입니다.
업데이트 오류: https://pastebin.com/raw/sQrnMe27
복원 오류: https://pastebin.com/raw/idWYmEFq
도움 주셔서 감사합니다!
pfaffman
(Jay Pfaffman)
6월 13, 2022, 5:16오후
3
버그인 것 같습니다
핵심(core) 부분에서 발생하는 문제처럼 보이는데, 표준적인 질문은 비표준 플러그인을 사용 중이신지 여부에 대한 것입니다.
테스트 사이트에서 selectable_avatar 사이트 설정에 잘못된 데이터가 있어서 같은 오류가 발생했고, rails 콘솔을 통해 수정해야 했습니다.
rails 콘솔 사용에 익숙하신가요? 그렇다면 아래 명령어를 실행해서 어떤 결과가 나오는지 확인해 주실 수 있을까요:
SiteSetting.where(data_type:17)
정확히 했는지 확신은 없는데, 여기는 제가 얻은 결과입니다:
=> #<ActiveRecord::Relation [#<SiteSetting id: 56, name: "selectable_avatars", data_type: 17, value: "[]", created_at: "2022-06-07 04:30:35.458837000 +0000", updated_at: "2022-06-08 08:14:54.196037000 +0000">]>
다시 rails 콘솔에서 SiteSetting.selectable_avatars = ""를 실행할 수 있을 것 같고, 그러면 재구축을 위해 준비가 끝날 것입니다.
현재 재빌드를 진행했고, 스트레스가 많았던 db migrate 명령어도 통과했습니다. 그래서 이 문제는 해결된 것 같습니다.
빠른 도움 주셔서 두 분 모두 감사합니다!
pfaffman
(Jay Pfaffman)
6월 13, 2022, 7:41오후
9
성공한 것 같네요! 해당 마이그레이션은 원래 선택 가능한 아바타를 새로운 형식으로 마이그레이션하도록 되어 있다고 생각하므로, 이 문제에 대해 관심을 가져보시는 것이 좋겠습니다.
david
(David Taylor)
6월 13, 2022, 8:05오후
10
맞습니다. 우리가 확인한 다른 모든 사례에서는 정상적으로 작동했습니다. []는 이전 형식에서도 유효한 값이 아니므로, 이 특정 사례는 매우 놀랍습니다. 아마도 콘솔에서 수동으로 작업한 잔여물이거나 잘못된 가져오기(import) 때문일 수 있습니다
추가 보고가 들어오면 이 사례에 대한 자동 수정 기능을 반드시 추가하겠습니다.
pfaffman
(Jay Pfaffman)
6월 13, 2022, 8:07오후
11
David Taylor:
[]은 유효한 값이 아닙니다.
아, 그렇군요. 보통 그 오류가 나는 건 제가 실수로 잘못된 변수에 접근했거나 그런 경우였거든요. 하지만 아마도 다른 것들이 모두 삭제된 후 남은 상태였을 수도 있겠네요. 하지만 솔직히 말하면, 제가 충분히 주의를 기울이지 않았던 것 같습니다.
david
(David Taylor)
6월 13, 2022, 8:10오후
12
우리의 ‘list’ 설정은 파이프(|)로 구분된 문자열 위에 얇게 구현된 UI이므로, 이론상 빈 목록은 빈 문자열로 저장되어야 합니다. 하지만 좋은 지적이네요. 누군가가 목록을 비우려다 실수로 이렇게 했을 수도 있습니다:
pry(main)> SiteSetting.selectable_avatars = []
=> []
pry(main)> SiteSetting.selectable_avatars
=> "[]"
(이것은 구형 포맷에 대한 것입니다. 새 포맷은 콘솔에서도 이를 방지하기 위한 검증 로직이 포함되어 있습니다.)
우리 경우엔 이번 달 초에 포럼이 설정되었고, 콘솔과의 상호작용은 전혀 없었으며 가져오기 작업도 하지 않았습니다. 사실 오늘 처음 rails console을 발견했습니다