테스트 사이트 - 개발 중인 베타 버전입니다

그누보드4(euckr) 에서 그누보드5(g5, utf8) 로 데이타 이전, 게시판 이름이 변경해서 리뉴얼한 경우.

· 11년 전 · 7993 · 1

## 그누보드4(euckr) 에서 그누보드5(g5, utf8) 로 .. 데이타 이전, 게시판 이름이 변경된 경우.

그냥 게시판 bo_table 이 동일하게 그누보드4 euckr 에서 그누보드5 로 이전하는건 좀 간편할텐데
bo_table 이 다 변경되게 리뉴얼 되면서 바뀐건 좀 까다롭습니다.
옛 사이트와 새 사이트 모두 phpmyadmin을 설치해서
테이블 "내보내기" 메뉴 기능으로 sql 문(insert 문 생성)을 내보낸 후, 새 사이트 phpmyadmin 에서
SQL 직접 입력란에서 붙여넣기를 했습니다.
이렇게 웹브라우저로 붙여 넣기 하면 euckr 이 새 사이트 utf8 환경에 자동으로 들어가서 utf8 로 되더군요.

만약 쉘에서 수동으로 mysqldump 를 테이블 단위로 받아서 할때는, 좀 더 까다로울수 있을겁니다.

만약 테이블이 엄청커서 내보내기로 받은 크기가 엄청 크다면,
방화벽에서 post 전달 값 크기 제한이 있을경우 막힐수 있으므로
방화벽 설정을 미리 허용해 준 후 해야 합니다.
그래도 안될 정도로 크다면, 계정쉘이나 다른 방법으로 밀어 넣어야 할겁니다.


- 옛 사이트 : mysql 버전 4.0, euckr 환경
- 새 사이트 : mysql 버전 5.0, utf8 환경


1. 먼저 구 사이트 g4_member 회원 정보가 old_password 함수 사용한다면
새 사이트 lib/common.lib.php 에서

>> function sql_password($value) 부분에
>> ...
>> sql_query("set old_passwords=1"); // 올드 패쓰워드를 사용할 경우 1, 아니면 0
와 같이 값을 1 로 해서 한줄 추가 해준다.


2. 회원 정보 이전.
옛 사이트에서 "완전한 형태의 insert 문" 형태로 덤프 받습니다. 예를들면
insert into `g4_member` ( `mb_no`,`mb_id`,`mb_name`,....) values
( '1','aaa','김이름',...),
( '2','bbb','강이름',...),
..

이런 식으로 덤프 받아서 g4_member 를 g5_member 치환한후 새 사이트에 밀어 넣습니다.
새 사이트는 비어 있는 상태이어야 합니다.


3. 게시판 자료 이전.
역시 완전한 insert 문 형태로 자료를 덤프 받아서, 만약 bo_table 이 바뀌었다면
- bo_table 이름을 새 이름으로 모두 치환하고 kj
- 그누5 게시판은 wr_trackback 칼럼이 없어져서, 이 칼럼명을 wr_twitter_user 와 같은 다른
새 칼럼으로 치환함.
이렇게 2 부분을 치환해서 새 사이트 db 에서 밀어 넣음. 모든 게시판을 다 밀어 넣음.
ex) g4_write_freeboard => g5_write_board03 으로 치환
ex) wr_trackback => wr_twitter_user 로 치환


4. 기타 g4_board_new 와 g4_board_file 2 개 테이블도 모두 , 새 서버에 g5_board_new 와 g5_board_file 로
밀어 넣음. 새 사이트에서는 이 2 테이블을 싹 비움.
중요한건 이 테이블은 bo_table 칼럼이 있으므로 update 문으로 새 bo_table 로 치환해야 함.
밀어 넣은후
update g5_board_new set bo_table = 'new name' where bo_table = 'old name';
update g5_board_file set bo_table = 'new name' where bo_table = 'old name';
와 같이 새 bo_table 로 일일이 다 바꾸어줌.


5. 게시판 첨부파일 링크
그누보드5 게시판에는 wr_file 이라는 칼럼이 새로생겼는데, 이건 그누보드4 에는 없는거라서
값을 따로 넣어야 합니다. 이건 게시판에 첨부파일로 파일을 첨부하면
그 정보가 g5_board_file 에 등록되고, 그 갯수가 각 게시판 테이블의 wr_file 칼럼 에 들어 가는거 같습니다.
만약 첨부 파일이 있는데도, 이 wr_file 이 비어 있으면 첨부파일 인식을 못하는거 같더군요.
그래서 , g5_board_file 에서
bo_table 와 wr_id 값을 참조해서

update `g5_write_[BO_TABLE값]` set wr_file = wr_file +1 where wr_id = [WR_ID값];

와 같이 일일이 g5_write_??? 테이블에서 값을 넣어줘야 합니다.
이런 노가다는
SELECT concat(' update g5_write_', bo_table, ' set wr_file = wr_file+1 where wr_id=',wr_id,' ;') FROM `g5_board_file` WHERE 1
와 비슷한 쿼리로 update 문을 만들어서 그걸 밀어 넣으면 될겁니다.



6. 첨부파일 ./data/디렉토리 그대로 복사해넣기.
data 를 그대로 복사한후, data/file/ 에서 각 bo_table 마다 생성된 디렉토리 이름을 새 bo_table 로
변경해 줍니다.
ex) mv data/file/freeboard data/file/board03


7. 그누보드5 게시판 관리에서 각 게시판 설정화면에 가보면
"카운터 조정" 하는데 체크하는게 있는데 이 부분에서 체크를 한번 해 주고, 저장을 하면
게시판 원글수, 페이지 번호 등이 조정이 되어서 완전하게 게시판이 이전 됩니다.



8. 기타 - 또 문제가 생기면 될때까지.



댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 1개

감사합니다!

게시글 목록

번호 제목
1362
1350
1342
1340
1335
1332
1330
1322
1317
1315
1312
1305
1300
1298
1293
1287
1286
1267
1262
1259
1255
1252
1245
1244
1240
1238
1235
1229
1224
1220