그누보드 5에서 라이믹스로 DB를 옮겨오려고 하는데....
CMS/프레임워크 | Rhymix 2.1 |
---|---|
개발 언어 | PHP 8.2 |
마이그레이션 툴이 제대로 작동하지 않아서 그냥 프로그램을 따로 짜서 DB에 직접 옮겨넣는 방향으로 하려고 합니다.
라이믹스 게시물 DB 테이블 구조는 어느정도 파악은 했는데, 게시물 DB 테이블에 다음과 같은 차이점이 있더라고요.
- 그누보드: 각 게시판마다 테이블이 나뉘어짐. 본문과 댓글은 같은 게시판이면 같은 테이블에 저장.
- 라이믹스: 모든 게시판을 한 테이블에 저장함. 본문은 본문 테이블에, 댓글은 댓글 테이블에 저장.
그래서 게시물을 욺기게 되면 한 테이블에 모두 저장되는데, 게시물 날짜별로 저장이 안 된다는 문제점이 생기더라고요. 게시판별로 순서대로 옮길 수밖에 없으니까요.
그래서 임시 테이블을 만들어서 이쪽으로 모두 복사하고, 다시 라이믹스로 복사할 때는 날짜 순서대로 정렬해서 옮길까 합니다.
여기서 질문입니다. 날짜 순서대로 DB 테이블에 차례차례 옮기면 실 사용시 DB 부하 걸리는 것에 이점이 있나요? 별 이점이 없다면 날짜 순서 정렬 없이 옮기려고 합니다.
사이트는 2008년부터 운영했고, DB 용량이 3.9 GB입니다. 게시판은 40여개이고, 총 레코드 수는 1111만개입니다.

우유커피
Lv. 1
댓글 8
혹시나 그누5 -> XE 마이그레이션 이 정상 작동한다면
( https://rhymix.org/pds/290596 )
XE 로 마이그레이션 후
XE -> 라이믹스 로 업데이트 하는 방법도 있겠죠
다만, 그누5->XE 는 테스트해보지 않아서 모르겠네요 ^^;;
저번에 해봤는데 XML로 추출은 되는데 입력이 안되더라고요...
정렬이 문제인거면.. 게시판의 정렬을 '문서순서' 가 아니라 '등록일' 로 하면
게시판별 마이그레이션이 되어도 결국 등록일 순서로 나오게 될거예요
아니면 문서순서 순이 테이블의 list_order 값인데
이게 따로 의미가 있는게 아니라 말 그대로 순서 (음수) 를 의미하기에
DB 를 전부 이전 한 후, 등록일 순으로 정렬을 한 뒤 list_order 값을 일괄적으로 쫙 새로 업데이트 해주는 편법도 있겠네요
그 후 다시 정렬을 문서순서 로 하면 기본 설정과 유사한 형태가 되겠네요
으음.... 급한 건 아니니 좀 더 연구해보겠습니다.
게시물이 1000만 개가 넘는다면 마이그레이션 툴은 아무래도 무리이겠네요.
글번호(document_srl)는 날짜순으로 정렬되어 있지 않더라도 상관없습니다. 게시판에서 날짜순(regdate DESC)으로 정렬하라고 설정하면 그만이니까요. 처음부터 라이믹스로만 운영하던 사이트라도 document_srl은 정확하게 정렬되어 있지 않아요. 임시저장 기능도 있고, 파일 첨부를 위한 FK값을 미리 따놓는 기능 때문에 실제 등록 순서와 다른 경우가 많거든요. 그래서인지, document_srl순으로 정렬하는 기능이 아예 없습니다. (!!!)
라이믹스 게시판에서 "문서번호"순으로 정렬하라고 설정하면 실제로 사용하는 쿼리는 document_srl DESC가 아니고 list_order ASC입니다. 인덱스 구조도 날짜순보다는 list_order로 정렬했을 때 가장 효율적으로 돌아가도록 되어 있으니, 이 컬럼이라도 순서대로 맞춰 놓는다면 글이 아주 많은 게시판에서는 쿼리 속도가 개선될 수 있습니다. list_order에는 기본값으로 document_srl의 역수가 들어가지만, 순서만 맞으면 어떤 숫자를 넣어도 상관없어요.
단, 앞으로 작성될 글에 document_srl과 list_order가 어떻게 배정될지 염두에 두고 작업하셔야 합니다. 기존 글은 잘 정렬되었는데 새 글들이 엉뚱한 곳으로 밀려 버리면 곤란하니까요. 시퀀스 테이블의 auto_increment 값도 잘 맞춰두시고요.^^
list_order는 생각을 못했네요. 그냥 넣었으면 큰일날 뻔 했습니다. 좀 더 연구해보고 방법을 찾아나가야겠네요.
금일 그누보드5로 라이믹스로 db이전 정상적으로 처리 하였습니다.
가지고 계신 이전툴이 어떤건지 모르겠으나 혹시나 해서 제가 가지고 있던 파일을 첨부해서 올려드립니다.
gnuboard5.zip
우선 저같은 경우 이전할때 ./modules/document/queries/insertDocument.xml 파일을 열어
notnull="notnull" 부분을 일괄 지웁니다. (이전 완료후엔 원상 복구)
그리고 시도하셨는데 이전이 안되신 경우는 현재 rhymix의 rx_documents 테이블의 password 타입이 varchar(60)으로 되어 있을텐데 이전할 db를 확인해보니 암호화된 글자수가 60글자가 넘네요. 그래서 varhcar(260)으로 변경하고
./modules/document/queries/insertDocument.xml 파일에서 <column name="password" var="password" maxlength="60" /> 이부분도 <column name="password" var="password" maxlength="260" /> 으로 변경해 주고 나서 , 데이터 이전툴로 다운받은 xml파일을 업로드 후 관리자 페이지에서 데이터 이전툴로 이전하면 정상적으로 이전이 됩니다.
저는 게시글 수가 많지 않아 별 문제 없이 이전 되었을수 있는데, 용량이 클경우 이전에 문제가 된다면 xml파일을 분할해서 다운 받으시면 되지 않을까 생각합니다.
잘 이전 하시길 바래 봅니다.
결론 : 그누보드5 -> Rhymix 바로이전 가능함.
자료 감사합니다. 이 방법으로도 한 번 시도해 볼께요. 저번 거는 XML로 추출은 됐는데 입력이 안되어서요.