그누보드4(euckr) 에서 그누보드5(g5, utf8) 로 데이타 이전, 게시판 이름이 변경해서 리뉴얼한 경우. 정보
그누보드4(euckr) 에서 그누보드5(g5, utf8) 로 데이타 이전, 게시판 이름이 변경해서 리뉴얼한 경우.본문
## 그누보드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
1
댓글 1개
감사합니다!