makeBCT

#AI #OpenAI #Chatbot #Cloud #WordPress

외부 게시판 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 *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

인기 글

Ubuntu 22.04 LTS에 Python 3.8 or 3.9 설치 방법
서버 : Vultr 클라우드OS: Ubuntu 22.04 LTS사용자 계정 생성하여 설치 진행함 1. Start with the system update sudo apt update...
AWS 인스턴스 유형 변경 방법
AWS 인스턴스 유형을 변경하기 위한 방법에는 다음 2가지가 있습니다.   1. 첫 번째 방법 AMI 이미지 생성 후 해당 이미지를 복원하여 신규 EC2 인스턴스를 생성하는...
사용자 작성 모듈 import 시 에러)(ModuleNotFoundError: No module named
파이썬 모듈을 만들고 테스트 할 때 ModuleNotFoundError: No module named 에러가 발생한 경우 원인 파이썬은 모듈을 불러올 때 모듈 설치 경로와 자신의...
Input error: k: Format of site key was invalid 에러 해결 방법
WP-Members 워드프레스 플러그인을 활용해서 회원가입 기능을 구현 하였는데, 다음과 같은 에러가 발생 하였습니다.         이는 WP-Members의...
오라클 클라우드 OCI 가입 드디어 성공 했습니다 (상세 후기)
2023년 2월 16일에 ‘오라클 클라우드 지급 검증 실패 글‘을 남긴 적이 있습니다. 그 때 검색을 통해 해결 방법을 찾아 보았고, 당시 성공했던 분들의...