여전히 동일합니다: app.yml과 import.yml (그리고 app.yml의 “bak” 파일).
Lightsail 1GB (초기에는 940MB, Ubuntu 업데이트 후에는 "921MB"가 됨)에 이 프로그램을 설치하려고 시도해 왔기 때문에 "문제"가 있을 수 있습니다. 공식 설치 방법을 사용했으며, 설치된 버전은 3.2가 최신 안정 버전이라는 위키 표시와 달리 3.3.* 베타 어딘가였습니다. 4GB 스왑을 사용했을 때 설치에는 1시간 15분에서 1시간 20분이 걸렸고, "launcher rebuild import"에는 약 2시간이 걸렸습니다.
RAM이 실제로 문제가 되는 것 같습니다. Lightsail 2GB/2GB 환경에서 클린 설치는 약 3.5~4배 빠르고, import 컨테이너 재빌드는 약 10배(심지어 그 이상) 빨랐습니다.
다만, import 스크립트가 phpBB 3.3.3에서는 작동하지 않을 수도 있다는 우려가 있습니다. 어쨌든 두 번 시도했지만 결과는 동일했습니다: 약 10개의 카테고리 이름 중 단 하나의 단어만이 빈 “category” 하나로만 가져와졌습니다. MySQL 텍스트 덤프는 2.66MB로 꽤 작은 편입니다. 모든 테이블 접두사는 요구사항에 맞게 설정되어 있습니다. 이미지, 이모티콘 등은 없습니다.
결론적으로, 포럼, 포럼 카테고리, 게시글은 하나도 가져와지지 않았지만, 사용자(수백 명)와 해당 통계는 모두 올바르게 가져와졌습니다.
phpBB 3.3.3 업데이트에서 사용된 MySQL 버전에 관한 무언가가 변경된 것 같지만, 여기서는 덤프 파일이므로 결국은 중요하지 않을 것 같습니다.
2.6MB 텍스트 파일을 열어서 읽거나 파싱하는 데 4GB가 필요하다는 뜻인가요? 혹시 Discourse 개발자이신가요? 그 덤프를 읽고 Discourse에서 사용하는 모든 데이터를 추출해서 다른 형태로 저장하는 바이너리 실행 파일은, 이 단순한 작업을 위해 MariaDB 전체를 포함하는 것까지 신경 쓰지 않는다면, 100KB 버퍼를 기준으로 약 200KB 정도가 적당하다고 생각합니다.
개인적으로 RAM 문제가 아니라고 봅니다. 프로세스는 빠르게 진행되었고, 가져온 테이블에 대해 가져오기 진행 상황을 표시했습니다. "종료"되지도 않았습니다. 사용자 테이블은 덤프의 맨 끝에, 주제 등 다른 테이블 뒤에 위치합니다.
저는 이 작업을 다시 시도해 보려고 했는데, 사용자 테이블을 맨 위로 복사/붙여넣고 위에서 언급한 매뉴얼/페이지의 동일한 단계를 수행해 보기 위해서였습니다(phpBB 대신 phpMyAdmin으로 생성한 덤프를 사용). 하지만 이제 Discourse는 원격 연결을 시도하면서 프로세스 시작을 거부하는데, 연결 정보는 추가하지도 않았습니다.
저는 디스커스(Discourse) 운영을 통해 생계를 유지하고 있으며, 셀 수 없을 정도로 많은 마이그레이션을 수행했습니다. 대략 100회 이상은 된 것 같습니다. 2GB는 충분히 작동할 가능성이 높으며, 특히 주제와 사용자가 몇 천 명에 불과한 경우 더욱 그렇습니다. 다만 일시적으로만 필요하신 것이라면, 더 많은 RAM을 사용하는 데 비용이 많이 들지 않으며 해를 끼칠 일도 없습니다. 저도 그것이 문제가 아닐 가능성이 높다고 생각합니다.
스크립트가 실행될 때 카테고리, 사용자, 주제, 게시물을 순서대로 카운트했나요?
이 스크립트는 가져온 데이터를 건너뛰고, 향후에도 해당 데이터를 건너뛰기 위해 커스텀 필드 데이터를 생성합니다. 따라서 스크립트를 다시 실행하려면 디스커스 데이터베이스를 초기화해야 합니다. 아무것도 가져오지 않았다고 하셨으니, 이것이 꼭 필요한지 명확하지 않습니다. 데이터를 가져왔지만 어떤 이유로 찾지 못하고 있는 경우이거나, 데이터를 찾지 못해 실패한 경우일 수 있으며, 이 두 가지 경우 모두에서 데이터베이스를 초기화할 필요는 없어 보입니다.
정확히 말하면 그렇지 않습니다:
“모든 (몇백 명) 사용자는 통계 정보와 함께 올바르게 가져와졌습니다”
컨테이너를 다시 재구성해 보았습니다. 설정은 동일합니다. 아무것도 변경하지 않았고, 다음 단계 이후:
import_phpbb3.sh # Docker 컨테이너 내부에서
스크립트가 이제 다음과 같이 표시합니다:
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mysql2-0.5.6/lib/mysql2/client.rb:97:in `connect’: Unknown database ‘phpbb’ (Mysql2::Error)
결국 categories를 새로 정의하지 않고 settings.yml 파일의 매핑을 모두 제거한 상태로 phpBB3.3.3 덤프 파일을 사용할 수 있었습니다.
원본 phpBB_mysql.sql 덤프 파일을 사용하면 카테고리 로드 단계에서 마이그레이션 스크립트가 중단되고 "빈 카테고리 본문"에 대한 오류가 표시됩니다.
이는 “phpbb_forums” 테이블의 “forum_desc” 필드가 부모 카테고리가 없는 메인 포럼 카테고리에서 비어 있을 때 발생합니다.
해당 첫 번째 카테고리가 부분적으로만 가져와지면 나머지 데이터가 어긋나는 것 같습니다.
새로 설치한 환경에서 해당 테이블 필드에 텍스트를 입력하면 이 문제가 해결되는 것으로 보입니다.