CMS Migration
지각생 연습장
목차 |
CMS Migration
CMS 간의 데이터 변환은 꾸준히 있는 작업이다. 지금까지는 제로보드와 꼼뮨(진보넷 CMS), 그것들 간 혹은 그것들로(부터)의 변환이 많았다. 지금 파고 들고 있는 Drupal CMS로의 변환 작업 꺼리가 생겼다. 그냥 직접 DB를 건드리기 보다는, 사람들이 쉽게 활용할 수 있도록 Drupal API 를 활용한 "모듈"로 제작하는게 바람직할 것이다.
변환 대상
보통은,
- 사용자(회원,Users) 정보
- 글(Article, Post)
- 덧글(Comment)
- 구조(Structure, Category) : 상응하는 게시판, taxonomy 설정등
- 첨부파일(Attach)
이 다섯 가지를 처리하는게 핵심이다.
순서
- 기본 정보를 수집 : 옮겨올(갈) DB 접속정보, 이름 등, 테이블 식별자등.
- 구조(게시판) 정보를 읽어오고 이동 방법등을 결정
- 백업
- 구조 생성 : 옮겨갈 곳에
- 카테고리 생성
- 데이터 이동 : 글, 덧글, 첨부파일
- 마무리 작업 : 글 수 등 통계 자료, 메타 정보등 생성
이런 순서로 대강 작업이 되겠다.
작업 사례: 미문동
미문동. 꼼뮨 -> drupal. 2007/3/25. 이런 피곤한 과정의 앞부분을 자꾸 반복하는게 싫어 여기에 적어놓음.
개요
- 방식 : 글, 덧글 이런걸 일괄적으로 하지 않고, 글 하나 옮기며, 그와 관련된 덧글, 파일 처리, 카테고리 지정을 하나씩 하며 나감. 이게 간명하고, 중간에 에러가 나도 그 부분까지는 안전하다.
- 작업 순서 : 옮겨갈 곳을 먼저 살피고, 기존 게시판으로 눈을 돌린다
- 게시판은 상응하는 forum을 만든다.
- 나중에 5.x로 업그레이드할 수 있다면, NodeType 모듈로 알맞게 데이터 형식을 변경할 수 있을 것.
관련된 테이블 : 드루팔
- 드루팔 기본 노드 : node, node_access, node_revisions, node_counter
- 게시판(포럼) : forum
- 덧글 : comments
- 첨부파일 : files, file_revisions
- 카테고리 : vocabulary, vocabulary_node_type, term_data, term_hierarchy
- 옮길때, 카테고리를 먼저 추가한 후, 그 array를 유지하고 있어야 겠다. (어떤 term의 번호는 무엇인가 함수를 만들어놓던가)
관련된 테이블 : 꼼뮨
- 게시판 데이터 : 종류에 따라, maybbs_*_board, news_*_board, photo_*_board
- 게시판 정보 : maybbs_config_info, news_ ...
- 카테고리 : 종류에 따라, maybbs_*_category1(~3), news_ ...
- 덧글 : maybbs_*_comment_memo ...
API
아래의 것들이 필요하다.
미문동 데이터 옮기기
구 게시판 목록
- 비디오 : gomediaction-7
- 라디오 : gomediaction-16
- 이미지 : -5
- 모바일 : -6
- 기획영상 : -13
- 방송국 : -4 (영상: category1=1, 라디오: category1=3)
- 인터넷방송 : _broadcasting
- 방송참여 : category1=1
- 기획안 : 3
- 소스공유 : 4
- 제작과정 : 5
- 방송봤는데 : 9
- 자유롭게 : 10
- 황새울방송-들소리 : 11
- 참여게시판 : -8
- 자료 : -9
- NEWS : -11
- english : -en
- 온라인행동 : _onlineAction
- 상영배급 : _screening
- 번역 : translation
과정
- DB 접속 정보 설정/불러옴
- DB 확인 (새 드루팔) :
- 드루팔 포럼 컨테이너 생성 : comm2drupal_new_forum_container()
- 각 게시판의,
- 이름을 알아냄 : _get_comm_bbs_name()
- 새 드루팔 포럼 생성 : _new_forum()
- 카테고리 정보 불러옴 : _get_comm_category()
- 새 드루팔 term 생성 : _new_term()
- 각 게시판글의,
- 제목, 글 등 정보를 불러옴 : _get_comm_content()
- 드루팔 포럼 주제 생성 : _new_forum_topic()
- 덧글 불러오기 -> 드루팔 덧글 생성 : _get_comm_comments() => _new_forum_topic_comments()
- 새 드루팔 포럼 주제에 카테고리 지정 : _set_forum_topic_category()
드루팔 모듈
- 4.7 용 (지금 미문동 사용중)
- 이름 : comm2drupal.module
- wp2drupal.module 참고.
- 테스트 : http://h2dj2.key.or.kr/d4
- DB 설정 페이지 추가
- 추가 발견(wp2drupal 보다가) : trackback, DB cleanup, encoding 등 => 나중 버전에.
- 2007/3/27, 01:41. 모듈 외관 완성. 데이터 이전부분 코드만 완성하면 됨.