Flarum에서 주제 가져오기 오류 (사용자, 그룹 가져오기는 정상)

여러분, 안녕하세요. Flarum에서 Discourse로 데이터를 이관하는 작업을 진행 중인데, 혹시 도움을 주실 분이 있을까 해서 문의드립니다. 제가 모르는 부분이 많아서 직접 헤매며 해결해 나갔고, 현재 이모터(importer)가 전제하는 가정들(예: 데이터베이스 접두사 등)에 기반하여 몇 가지 오류를 해결했습니다. 그렇게 해서 마침내 카테고리(Categories)와 사용자(Users)는 성공적으로 가져왔습니다! :partying_face:

하지만 이제 실제 *토픽(Topics)*을 가져오는 데 문제가 생겼습니다. 토픽은 물론 가장 중요한 부분 중 하나이죠. :grinning_face_with_smiling_eyes: 안타깝게도 제가 받는 특정 오류 메시지에 대해서는 거의 정보를 찾을 수가 없습니다. Meta에 예전에 비슷한 주제로 올라온 글이 하나 있긴 하지만, 아무 답변도 달리지 않아서 도움이 되지 않습니다. 이번에는 더 좋은 결과를 얻을 수 있기를 희망합니다. :grin:

아래는 전체 오류 메시지입니다. 하단 부분에서 핵심 문제가 발생하는 것 같습니다. 식별된 "중복된 키 값(duplicate key value)"은 너무 모호해서 막막한 상태입니다. 도움을 주시면 감사하겠습니다!

An error occurred while loading ./script/import_scripts/flarum_import.rb.
Failure/Error: return exec_without_profiling(*args, &blk) unless SqlPatches.should_measure?

PG::InFailedSqlTransaction:
  ERROR:  current transaction is aborted, commands ignored until end of transaction block
# ./script/import_scripts/base.rb:243:in `ensure in block in all_records_exist?'
# ./script/import_scripts/base.rb:243:in `block in all_records_exist?'
# ./script/import_scripts/base.rb:224:in `all_records_exist?'
# ./script/import_scripts/flarum_import.rb:122:in `block in import_posts'
# ./script/import_scripts/base.rb:874:in `block in batches'
# ./script/import_scripts/base.rb:873:in `loop'
# ./script/import_scripts/base.rb:873:in `batches'
# ./script/import_scripts/flarum_import.rb:101:in `import_posts'
# ./script/import_scripts/flarum_import.rb:32:in `execute'
# ./script/import_scripts/base.rb:47:in `perform'
# ./script/import_scripts/flarum_import.rb:162:in `<top (required)>'
# ------------------
# --- Caused by: ---
# PG::UniqueViolation:
#   ERROR:  duplicate key value violates unique constraint "import_ids_pkey"
#   DETAIL:  Key (val)=(3) already exists.
#   ./script/import_scripts/base.rb:231:in `block in all_records_exist?'
No examples found.


Finished in 0.00004 seconds (files took 5.56 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examples

손상된 인덱스인 것 같습니다. 좀 놀랍네요. 어떤 버전의 postgres를 사용 중인가요? 데이터베이스를 지우고 다시 시도하는 것이 좋을 것 같습니다. 어차피 다른 토픽 관련 문제를 디버깅하는 과정에서 여러 번 반복해야 할 가능성이 큽니다.

다른 옵션으로는 해당 인덱스를 재구성하고 중복된 레코드를 삭제해서 작동할 때까지 시도해 볼 수 있습니다.

제이, 감사합니다! 불행히도 제 실수(가상 머신을 잘못 조작한 것)로 인해 이 Discourse 설치 환경을 잃어버렸습니다. 그래서 과거 기록을 확인하거나, 당신이 추천해 주신 문제 해결 단계를 수행할 수 없게 되었습니다. 이런 일이 벌어져 정말 부끄럽고 한심하게 느껴집니다. 하지만 결국 이런 결과가 나온 것입니다.

제가 말씀드릴 수 있는 것은, Discourse의 Ubuntu 설치 지침을 따랐다는 점입니다:

따라서 해당 방식으로 설치된 Postgres 버전이 무엇이든 상관없을 것입니다. 그리고 저는 이 시점까지 데이터베이스를 지우지 않은 채로 몇 번이나 가져오기(import)를 시도했었습니다. 그래서 이것이 문제의 원인이었을 수도 있습니다.

Docker 방식을 사용하지 않고 Ubuntu 개발 환경 방식을 선택한 이유는, 이전에 (Digital Ocean에서) Docker 방식을 시도했을 때, 무엇을 하든 제가 찾은 어떤 지침도 작동하지 않았기 때문입니다. 아마도 Docker/컨테이너 내부에 있었기 때문에 다른 접근 방식이 필요했던 것 같습니다.

불행히도 저는 제 이해력의 한계에서 벗어나는 작업을 하고 있는 셈입니다. 하지만 그래도 최소한 직접 해보는 것이 가치가 있을 것 같아 시도해 보았습니다. 이렇게 큰 차질이 빚어졌고, 앞으로 더 많은 문제 해결 단계를 거쳐야 할 것이라는 점을 감안하면, 이제 전문가의 도움을 구할 때가 된 것 같습니다. 그래서 그 예산을 마련하기 위해 노력해 보겠습니다. :grinning_face_with_smiling_eyes:

다시 한번 도움을 주셔서 감사합니다!

완벽합니다! 다시 발생하지 않는 한 무슨 일이 있었는지 알아볼 필요가 없습니다.