그누보드 [G5] 그누보드4 → 그누보드5 업그레이드 (g4_import.php 이용)
페이지 정보
본문
그누보드4를 그누보드5 로 이전(업그레이드)를 위한 사전 작업입니다.
1. 그누보드4 euc-kr 일때만 해당
1-1. 그누보드4 / config.php 를 config3.php 로 복제
1-2. 그누보드4 / config.php 를 config3.php 로 복사
$g4['table_prefix'] = "g4_"; 를 $g4['table_prefix'] = "g5_"; 로 변경
$g4['charset'] = "euc-kr"; 를 $g4['charset'] = "utf-8"; 로 변경
1-3. 디비를 다운로드
mysqldump --default-character-set=euckr --extended-insert=FALSE -h디비주소 -u디비아이디 -p 디비명 > db.sql
참고: https://www.happyjung.com/lecture/50
1-4. 저장된 sql 파일의 문서 형식을 utf-8 로 변경해서 저장
`g4_ 를 `g5_ 로 변경
character_set_client = euckr 을 character_set_client = utf8 로 변경
1-5. 디비에 자료 업로드 ( utf-8 지원여부 확인 )
mysql --default-character-set=utf8 -h디비주소 -u디비아이디 -p 디비명 < db.sql
참고: https://www.happyjung.com/lecture/52
2. 그누보드5 / g4_improt_run.php 수정
2-1. 그누보드4에는 있지만, 그누보드5에는 사용하지 않는 필드를 생성
flush();
아래에 내용 추가
// g5_member 필드 추가
$field_row = sql_fetch( "SHOW COLUMNS FROM {$g5['member_table']} WHERE `Field` = 'mb_password_q' " );
if(!$field_row['Field']) { sql_query(" ALTER TABLE `{$g5['member_table']}` ADD `mb_password_q` varchar(255) NOT NULL AFTER `mb_nick_date` ", true); }
$field_row = sql_fetch( "SHOW COLUMNS FROM {$g5['member_table']} WHERE `Field` = 'mb_password_a' " );
if(!$field_row['Field']) { sql_query(" ALTER TABLE `{$g5['member_table']}` ADD `mb_password_a` varchar(255) NOT NULL AFTER `mb_password_q` ", true); }
$field_row = sql_fetch( "SHOW COLUMNS FROM {$g5['member_table']} WHERE `Field` = 'mb_jumin' " );
if(!$field_row['Field']) { sql_query(" ALTER TABLE `{$g5['member_table']}` ADD `mb_jumin` varchar(255) NOT NULL AFTER `mb_level` ", true); }
// g5_board 필드 추가
$field_row = sql_fetch( "SHOW COLUMNS FROM {$g5['board_table']} WHERE `Field` = 'bo_trackback_level' " );
if(!$field_row['Field']) { sql_query(" ALTER TABLE `{$g5['board_table']}` ADD `bo_trackback_level` tinyint(4) DEFAULT '0' AFTER `bo_link_level` ", true); }
$field_row = sql_fetch( "SHOW COLUMNS FROM {$g5['board_table']} WHERE `Field` = 'bo_disable_tags' " );
if(!$field_row['Field']) { sql_query(" ALTER TABLE `{$g5['board_table']}` ADD `bo_disable_tags` text NOT NULL AFTER `bo_category_list` ", true); }
$field_row = sql_fetch( "SHOW COLUMNS FROM {$g5['board_table']} WHERE `Field` = 'bo_use_comment' " );
if(!$field_row['Field']) { sql_query(" ALTER TABLE `{$g5['board_table']}` ADD `bo_use_comment` tinyint(4) NOT NULL DEFAULT '0' AFTER `bo_use_rss_view` ", true); }
$field_row = sql_fetch( "SHOW COLUMNS FROM {$g5['board_table']} WHERE `Field` = 'bo_use_trackback' " );
if(!$field_row['Field']) { sql_query(" ALTER TABLE `{$g5['board_table']}` ADD `bo_use_trackback` tinyint(4) NOT NULL DEFAULT '0' AFTER `bo_use_ip_view` ", true); }
$field_row = sql_fetch( "SHOW COLUMNS FROM {$g5['board_table']} WHERE `Field` = 'bo_image_head' " );
if(!$field_row['Field']) { sql_query(" ALTER TABLE `{$g5['board_table']}` ADD `bo_image_head` VARCHAR( 255 ) NOT NULL AFTER `bo_skin` ", true); }
$field_row = sql_fetch( "SHOW COLUMNS FROM {$g5['board_table']} WHERE `Field` = 'bo_image_tail' " );
if(!$field_row['Field']) { sql_query(" ALTER TABLE `{$g5['board_table']}` ADD `bo_image_tail` VARCHAR( 255 ) NOT NULL AFTER `bo_image_head` ", true); }
$field_row = sql_fetch( "SHOW COLUMNS FROM {$g5['board_table']} WHERE `Field` = 'bo_order_search' " );
if(!$field_row['Field']) { sql_query(" ALTER TABLE `{$g5['board_table']}` ADD `bo_order_search` tinyint(4) NOT NULL DEFAULT '0' AFTER `bo_use_search` ", true); }
2-2. 게시판 테이블 drop
if($row2['cnt'])
continue;
를 아래의 내용으로 변경
//if($row2['cnt'])
// continue;
sql_query( " delete from {$g5['board_table']} where bo_table = '{$row['bo_table']}' ");
$drop = " DROP TABLE IF EXISTS `".$g5['write_prefix'].$row['bo_table']."` "; sql_query($drop); // echo $drop."<br>"; 테이블 삭제
3. 그누보드5 / g4_import.php 실행
3-1. 그누보드4 euc-kr 인경우
../그누보드4/config3.php 입력
3-2. 그누보드4 utf-8 인경우
../그누보드4/config.php 입력
1. 그누보드4 euc-kr 일때만 해당
1-1. 그누보드4 / config.php 를 config3.php 로 복제
1-2. 그누보드4 / config.php 를 config3.php 로 복사
$g4['table_prefix'] = "g4_"; 를 $g4['table_prefix'] = "g5_"; 로 변경
$g4['charset'] = "euc-kr"; 를 $g4['charset'] = "utf-8"; 로 변경
1-3. 디비를 다운로드
mysqldump --default-character-set=euckr --extended-insert=FALSE -h디비주소 -u디비아이디 -p 디비명 > db.sql
참고: https://www.happyjung.com/lecture/50
1-4. 저장된 sql 파일의 문서 형식을 utf-8 로 변경해서 저장
`g4_ 를 `g5_ 로 변경
character_set_client = euckr 을 character_set_client = utf8 로 변경
1-5. 디비에 자료 업로드 ( utf-8 지원여부 확인 )
mysql --default-character-set=utf8 -h디비주소 -u디비아이디 -p 디비명 < db.sql
참고: https://www.happyjung.com/lecture/52
2. 그누보드5 / g4_improt_run.php 수정
2-1. 그누보드4에는 있지만, 그누보드5에는 사용하지 않는 필드를 생성
flush();
아래에 내용 추가
// g5_member 필드 추가
$field_row = sql_fetch( "SHOW COLUMNS FROM {$g5['member_table']} WHERE `Field` = 'mb_password_q' " );
if(!$field_row['Field']) { sql_query(" ALTER TABLE `{$g5['member_table']}` ADD `mb_password_q` varchar(255) NOT NULL AFTER `mb_nick_date` ", true); }
$field_row = sql_fetch( "SHOW COLUMNS FROM {$g5['member_table']} WHERE `Field` = 'mb_password_a' " );
if(!$field_row['Field']) { sql_query(" ALTER TABLE `{$g5['member_table']}` ADD `mb_password_a` varchar(255) NOT NULL AFTER `mb_password_q` ", true); }
$field_row = sql_fetch( "SHOW COLUMNS FROM {$g5['member_table']} WHERE `Field` = 'mb_jumin' " );
if(!$field_row['Field']) { sql_query(" ALTER TABLE `{$g5['member_table']}` ADD `mb_jumin` varchar(255) NOT NULL AFTER `mb_level` ", true); }
// g5_board 필드 추가
$field_row = sql_fetch( "SHOW COLUMNS FROM {$g5['board_table']} WHERE `Field` = 'bo_trackback_level' " );
if(!$field_row['Field']) { sql_query(" ALTER TABLE `{$g5['board_table']}` ADD `bo_trackback_level` tinyint(4) DEFAULT '0' AFTER `bo_link_level` ", true); }
$field_row = sql_fetch( "SHOW COLUMNS FROM {$g5['board_table']} WHERE `Field` = 'bo_disable_tags' " );
if(!$field_row['Field']) { sql_query(" ALTER TABLE `{$g5['board_table']}` ADD `bo_disable_tags` text NOT NULL AFTER `bo_category_list` ", true); }
$field_row = sql_fetch( "SHOW COLUMNS FROM {$g5['board_table']} WHERE `Field` = 'bo_use_comment' " );
if(!$field_row['Field']) { sql_query(" ALTER TABLE `{$g5['board_table']}` ADD `bo_use_comment` tinyint(4) NOT NULL DEFAULT '0' AFTER `bo_use_rss_view` ", true); }
$field_row = sql_fetch( "SHOW COLUMNS FROM {$g5['board_table']} WHERE `Field` = 'bo_use_trackback' " );
if(!$field_row['Field']) { sql_query(" ALTER TABLE `{$g5['board_table']}` ADD `bo_use_trackback` tinyint(4) NOT NULL DEFAULT '0' AFTER `bo_use_ip_view` ", true); }
$field_row = sql_fetch( "SHOW COLUMNS FROM {$g5['board_table']} WHERE `Field` = 'bo_image_head' " );
if(!$field_row['Field']) { sql_query(" ALTER TABLE `{$g5['board_table']}` ADD `bo_image_head` VARCHAR( 255 ) NOT NULL AFTER `bo_skin` ", true); }
$field_row = sql_fetch( "SHOW COLUMNS FROM {$g5['board_table']} WHERE `Field` = 'bo_image_tail' " );
if(!$field_row['Field']) { sql_query(" ALTER TABLE `{$g5['board_table']}` ADD `bo_image_tail` VARCHAR( 255 ) NOT NULL AFTER `bo_image_head` ", true); }
$field_row = sql_fetch( "SHOW COLUMNS FROM {$g5['board_table']} WHERE `Field` = 'bo_order_search' " );
if(!$field_row['Field']) { sql_query(" ALTER TABLE `{$g5['board_table']}` ADD `bo_order_search` tinyint(4) NOT NULL DEFAULT '0' AFTER `bo_use_search` ", true); }
2-2. 게시판 테이블 drop
if($row2['cnt'])
continue;
를 아래의 내용으로 변경
//if($row2['cnt'])
// continue;
sql_query( " delete from {$g5['board_table']} where bo_table = '{$row['bo_table']}' ");
$drop = " DROP TABLE IF EXISTS `".$g5['write_prefix'].$row['bo_table']."` "; sql_query($drop); // echo $drop."<br>"; 테이블 삭제
3. 그누보드5 / g4_import.php 실행
3-1. 그누보드4 euc-kr 인경우
../그누보드4/config3.php 입력
3-2. 그누보드4 utf-8 인경우
../그누보드4/config.php 입력
댓글목록
등록된 댓글이 없습니다.