외부 게시판 DB를 워드프레스 게시판으로 이관하는 방법 정리

워드프레스 홈페이지 제작을 하다 보면 외부 게시판으로 제작된 홈페이지를 워드프레스로 리뉴얼 해야 할 일이 많습니다. 이 경우 게시판 백업을 해야 하는데요, 게시판 데이터가 많지 않다면 수작업으로 하면 되는데, 데이터가 많은 경우 자동 백업을 해야 합니다. 아직까지 외부 게시판 데이터를 워드프레스로 가져오는 솔루션이 없기 때문에 (수고스럽지만) DB단에서 이 작업을 처리하는 것이 유용할 때가 있습니다.

 

이번에 업체 홈페이지를 리뉴얼 하면서 외부 게시판 데이터를 워드프레스로 가져와야 했는데, 이 작업이 DB단에서 데이터 이관을 해야 하는 것이었고, 이 작업을 하면서 고려한 몇 가지 내용을 이 글에서 정리해 두었습니다. 혹시 비슷한 고민을 하는 분들에게 도움이 되었으면 합니다.

 

 

1. 진행에 앞서 고려 사항

 

먼저, 진행에 앞서 외부 게시판은 내부적으로 시험 리포트를 관리(입력, 수정, 삭제 등)하는 용도로 사용된 것이었고, 약 2,500여개 글이 등록된 게시판 입니다. 작업 범위는 외부 게시글의 전체 필드가 아니고 일부 필드만을 워드프레스 게시판의 일부 필드로 가져와야 하는 것입니다. 작업에 활용된 워드프레스 게시판은 KBoard 입니다.

 

 

2. 외부 게시판 데이터를 엑셀 파일로 백업

 

업체에 요청하던지 아니면 직접 DB에 접속해서 백업 받기 원하는 게시판의 데이터를 엑셀 포맷으로 백업을 합니다. 백업된 결과는 다음과 같습니다.

 

xsl

 

 

3. 게시판 테이블 구조 추가

 

외부 게시판의 일부 필드를 워드프레스 게시판으로 가져오기 위해 Kboard 테이블의 구조를 일부 수정해야 합니다. 이 글에서는 기존 등록된 시험보고서 정보를 워드프레스 게시판으로 가져오는 것이기 때문에 몇몇 필드를 신규 등록하는 작업만 수행 하였습니다. 추가된 결과는 다음과 같습니다.

 

kboard_table

 

 

4. KBoard 스킨 및 코어 커스텀 

 

새 필드 추가 이후 데이터를 워드프레스 게시판에서 추가, 수정, 삭제하려면 KBoard 게시판의 스킨을 수정해야 합니다. 이번 작업에서는 default 스킨을 복사해서 report 스킨을 만들고, 이 스킨의 document.php, editor.php, list.php 등 파일을 커스터마이징 했습니다. 특히, 테이블 구조가 변경되면 데이터가 DB에 저장되도록 하기 위해 KBContent.class.php 와 같은 KBoard 코어 파일을 수정해야 합니다. 커스터마이징 완료된 report 스킨의 신규 등록 화면은 다음과 같습니다.

 

report

 

 

5. 엑셀 파일 칼럼 수정

 

기존 게시판 필드 중 불필요한 부분을 제거한 다음, 이를 다음과 같이 Opendocument 스프레드시트(*.ods) 포맷으로 저정합니다.

 

ods

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

* 참고로 이 글에서 엑셀 파일을 ods 포맷으로 저장한 이유는 phpmyadmin에서 가져오기 할 때 xml, csv 포맷으로는 가져오기를 완료할 수 없었기 때문입니다. 만약 phpmyadmin에서 xml 또는 csv 포맷을 불러오기 할 수 있다면 해당 포맷으로 저장해도 무방합니다.

 

 

6. ods 파일 불러오기

 

ods 파일을 DB로 불러오기 하기 위해 활용한 프로그램은 phpmyadmin 입니다. 이 도구를 이용해서 해당 테이블로 불러오기 완료한 결과는 다음과 같습니다.

 

phpmyadmin

 

 

7. 해당 필드를 워드프레스 게시판 필드로 복사

 

가져오기 완료된 필드를 워드프레스 게시판으로 복사하기 위해서는 다음의 SQL 코드를 입력해야 합니다.

 

sql

 

위 그림의 SQL문은 다음과 같습니다.

INSERT INTO wp_kboard_board_content (board_id,parent_uid,member_uid,member_display,title,secret,notice,search,password,author,etc1,etc2,etc3,etc4,etc5,etc6,etc7,etc8,etc9,etc10,etc11,etc12)
SELECT A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V
FROM Sheet1

 

 

8. 확인

 

7번 SQL 문을 실행하면 다음과 같은 결과를 볼 수 있을 것입니다.

 

sql2

 

위 그림에서 wp_kboard_board_content 테이블의 일부 필드에 외부 게시판의 데이터가 추가된 것을 확인할 수 있습니다. 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *

인기 글

Ubuntu 22.04 LTS에 Python 3.8 or 3.9 설치 방법
서버 : Vultr 클라우드OS: Ubuntu 22.04 LTS사용자 계정 생성하여 설치 진행함1. Start with the system updatesudo apt update...
오라클 클라우드 OCI 가입 드디어 성공 했습니다 (상세 후기)
2023년 2월 16일에 ‘오라클 클라우드 지급 검증 실패 글‘을 남긴 적이 있습니다.그 때 검색을 통해 해결 방법을 찾아 보았고, 당시 성공했던 분들의...
Ubuntu 20.04에 MySQL 5.7 설치
비씨티원 인공지능 서비스 플랫폼 BAP(Bctone AI service Platform)의 설치 환경은 공식적으로 Ubuntu 18.04와 MySQL 버전 5.7 입니다. 최근 Ubuntu...
회사 도메인으로 무료 회사 메일 만드는 방법 정리
회사 도메인으로 무료 메일 만드는 방법에는 네이버, 다음, 구글 메일서버를 이용하는 방법이 있었는데, 근래 네이버, 구글의 ㄱㅇ우 유료 서비스로 전환되어 현재는 Daum 스마트워크를...
WSL2/Ubuntu 22.04 LTS에서 Jupyter notebook 실행하기
WSL2 Ubuntu에서 Jupyter notebook(Jupyter Lab) 설치는 다음과 같습니다.$ pip install jupyter $ pip install jupyterlab단,...