대용량 phpbb 데이터베이스를 마이그레이션하고 있습니다. 기존 사이트가 활성 상태인 동안 대부분의 마이그레이션을 수행한 후, 마이그레이션 주말에 데이터베이스를 다시 로드한 뒤 마이그레이션 스크립트를 재실행하는 방식을 고려하고 있습니다. 이렇게 하면 마이그레이션 주말에 가져와야 할 작업이 300,000건에서 수천 건의 사용자 게시글로 줄어들 것입니다.
이 방식이 실현 가능한가요? 마이그레이션 스크립트가 MySQL 데이터베이스 외부에서 재개 지점(resume points)을 유지하나요?
이전 작업을 초기화하거나 중복 없이 새로운 데이터베이스 덤프를 업로드할 수 있는 쉬운 방법이 있나요?
최적의 관행이나 조언을 환영합니다.
Canapin
(Coin-coin le Canapin)
12월 16, 2024, 3:07오후
2
네, phpbb 가져오기 스크립트 는 이를 지원합니다. 업데이트된 sql 데이터베이스를 로드한 후 스크립트를 다시 실행하기만 하면 됩니다. 기존 콘텐츠는 건너뛰고 누락된 항목만 Discourse에 추가합니다.
답장 주셔서 감사합니다. "업데이트된 SQL 데이터베이스를 로드한 후"라는 답변에 대해 명확히 알고 싶습니다.
이것이 새 덤프 파일을 자동으로 인식하여 데이터베이스를 업데이트한다는 의미인가요? 아니면 업데이트된 데이터로 데이터베이스를 수동으로 새로고침해야 한다는 의미인가요?
Canapin
(Coin-coin le Canapin)
12월 16, 2024, 5:28오후
4
MySQL에서 이전 데이터베이스를 삭제하고, 최신 SQL 파일을 새 데이터베이스로 가져온 다음, 최신 데이터베이스를 로드하는 가져오기 스크립트를 실행해야 합니다.
해당 스크립트는 모든 데이터베이스 내용을 순회하며, 일부 콘텐츠(사용자, 게시물 등)가 이미 Discourse에 존재하는지 감지하고, 새로운 데이터만 가져옵니다.
deepvyas
(Deep Vyas)
12월 26, 2024, 11:38오전
6
@Canapin 마이그레이션에 대한 안내 감사합니다. 테이블에서 레코드가 삭제된 경우(예: 제품 또는 제품 옵션 삭제)에 대비하여 질문 하나만 드리겠습니다.
해당 스크립트는 테이블의 해당 행을 업데이트하나요?
RGJ
(Richard - Communiteq)
12월 26, 2024, 12:24오후
7
아니요, 그리고 게시글과 사용자에 대한 업데이트(수정)도 감지하지 않습니다.
업데이트를 공유합니다. 저는 phpBB 마이그레이션을 두 단계로 나누어 진행했습니다.
첫 번째 마이그레이션
현재 phpBB 시스템이 여전히 프로덕션 환경에서 운영 중일 때 다음과 같은 작업을 수행했습니다:
표준 phpBB 마이그레이션 가이드라인을 따랐습니다.
현재 phpBB 데이터베이스의 SQL 덤프를 확보했습니다.
모든 파일과 아바타를 복사했습니다.
이 과정을 통해 대부분의 데이터를 마이그레이션하고 실제 데이터로 모든 것을 테스트할 수 있었습니다. 데이터를 검증하고 새로운 Discourse 시스템을 설정한 후, 두 번째 마이그레이션 작업으로 넘어갔습니다.
두 번째 마이그레이션
이번에는 phpBB 포럼을 중단했습니다.
수입 스크립트를 두 번째로 실행했습니다:
첫 번째 마이그레이션 이후에 생성된 새 파일로 파일과 아바타를 업데이트했습니다.
MySQL 덤프를 새로운 덤프 파일로 교체했습니다.
수입 스크립트를 실행했습니다. 프로세스가 몇 주치 데이터만 가져와야 했기 때문에 스크립트 실행에 15분도 걸리지 않았습니다.
모든 것이 순조롭게 진행되었습니다.
대형 phpBB 포럼을 마이그레이션해야 하는 경우, 두 단계 방식의 마이그레이션을 강력히 권장합니다.