Blog

안녕하세요.

XE 개발팀입니다.


일전에 공지를 통해 1.5 업데이트 후 발생하는 오류에 대해 몇 가지 설명을 드린 적이 있습니다.

그중 2번 "document모듈 업데이트 후 알 수 없는 error가 발생합니다."와 관련되어서 웹을 통해 수정 프로그램을 만들어 배포하려 하였지만, admin을 통해 업데이트 하는 것과 크게 다르지 않아 직접 수정할 수 있는 방법을 알려 드립니다.

자신이 사용하는 DB 관리 툴(phpMyAdmin, console, MySQL Query Browser 등)을 이용하여 아래 내용을 확인해 보시고 적용하시면 됩니다. DB 내용이 많을 경우 웹 어드민 등 툴을 이용하기 보다는 mysql 콘솔을 이용하시길 권장해 드립니다.

아래 내용은 MySQL 기준으로 설명 드립니다.


단 아래 내용은 DB의 구조를 변경하는 작업이므로 테스트 DB에서 테스트를 해 본 후 작업하셔야 합니다.

또한 documents table의 내용이 많을 경우 시간이 오래 걸릴 수 있습니다.

구조 변경 작업이 완료되지 않은 상태로 중지를 시킬 경우 문제가 발생할 수 있으니 구조변경 완료시까지 다른 작업을 삼가해 주시기 바랍니다.

또한 Source가 1.5 버젼이 아닌 상태에서 아래 내용을 적용하시면 문제가 발생합니다. 꼭 자신의 Core 버젼을 확인해 주시기 바랍니다.


1. documents 테이블의 구조를 확인한다.


XE 설치 시 prefix를 'xe'로 설정했다면 documents Table은 xe_documents로 만들어 져 있을 것입니다.

phpMyAdmin이라면 '구조'탭을, console이라면 'desc xe_documents' 라고 치시면 됩니다.

documents Table중에 다음과 같은 사항을 확인합니다.

다음의 사항중에 하나라도 해당된다면 1.5로 업데이트 시 오류가 발생한 경우입니다.


  • status column이 없다
  • is_secret column이 남아 있다.
  • allow_comment column이 남아 있다.
  • lock_comment column이 남아 있다.
  • comment_status column이 없다.
  • key 또는 index명에 idx_module_status 라는 이름의 index가 없다.


2. documents 테이블에 status라는 column이 있는지 확인한다.


status column이 없으면 다음과 같은 쿼리를 실행해 주면 됩니다.

phpMyAdmin이라면 'SQL' 탭에서, 콘솔이라면 콘솔에서 직접 해 주면 됩니다.


ALTER TABLE xe_documents ADD COLUMN `status` VARCHAR(20) DEFAULT 'PUBLIC';


3. 기존 비밀글 컬럼을 status로 옮겨 줍니다.


2번이 성공적으로 끝나서 status column이 잘 생성 되었고 아직 is_secret라는 column이 남아 있는 경우라면

is_secret의 내용을 status로 옮겨 줍니다.

2번과 마찬가지로 아래의 쿼리를 실행해 주면 됩니다.


UPDATE xe_documents SET status='SECRET' WHERE is_secret='Y';


4. is_secret column을 삭제 합니다.


3번까지 잘 완료 되었다면 is_secret column을 삭제합니다.

다음과 같은 쿼리를 실행하면 됩니다.


ALTER TABLE xe_documents DROP COLUMN `is_secret`;


5. comment_status column을 추가 합니다.


comment_status column이 없다면 다음과 같은 쿼리를 실행해서 추가 합니다.


ALTER TABLE xe_documents ADD COLUMN `comment_status` VARCHAR(20) DEFAULT 'ALLOW';


6. comment_status의 값을 업데이트 합니다.


allow_comment column과 lock_comment column에 있던 내용을 이용하여

comment_status의 값을 업데이트 해야 합니다.

다음과 같은 쿼리를 실행하면 됩니다.


UPDATE xe_documents SET comment_status='DENY' WHERE allow_comment='Y' AND lock_comment='Y';

UPDATE xe_documents SET comment_status='DENY' WHERE allow_comment='N' AND lock_comment='Y';

UPDATE xe_documents SET comment_status='DENY' WHERE allow_comment='N' AND lock_comment='N';


7. allow_comment column과 lock_comment column을 삭제 합니다.


6번을 성공적으로 마쳤다면 아래와 같은 쿼리를 통해 이제 필요 없어진 allow_comment column과 lock_comment column을 삭제 합니다.


ALTER TABLE xe_documents DROP COLUMN `allow_comment`;

ALTER TABLE xe_documents DROP COLUMN `lock_comment`;


8. 마지막으로 status 관련 index를 추가 합니다.


idx_module_status 라는 이름의 key 또는 index가 없다면 다음과 같은 쿼리를 실행시켜 줍니다.


ALTER TABLE `xe_documents` ADD INDEX `idx_module_status` (module_srl, status);


9. 마지막 확인 작업


1번에서 확인했던 것과 마찬가지로 다음과 같은 상태가 되었는지 확인을 합니다.

다음의 조건을 모두 만족 시키면 올바르게 구조가 변경된 것입니다.

  • status column이 있다.
  • is_secret column이 없다.
  • allow_comment column이 없다.
  • lock_comment column이 없다.
  • comment_status column이 있다.
  • key 또는 index명에 idx_module_status 라는 이름의 index가 있다.

다시 한번 당부의 말씀을 드리자면 꼭 테스트 장비에서 테스트 해 보신 후 실 서비스에 반영해 주시기 바랍니다.

위 내용과 관련해서 질문이 있으시면 댓글 달아 주시면 확인 가능한 부분까지 설명해 드리도록 하겠습니다.


감사합니다.

태그 연관 글
  1. [2019/10/20] 묻고답하기 소셜xe 오류이후 관리자 로그인 기능이 사라졌습니다. by 양현석
  2. [2019/09/11] 묻고답하기 카카오톡 공유 에러 문의드립니다. by 김병화
  3. [2019/07/26] 묻고답하기 XE 초보 오류 도움을 요청합니다.. by 월드미스유니버시티 *1
  4. [2018/10/10] 묻고답하기 부탁드립니다 초보가 급히 부탁드립니니다 by 김병화 *2
  5. [2017/08/31] 묻고답하기 웹페이지 오류관련하여 질문 드립니다ㅠㅠ by skySongHN *4
제목 최종 글 날짜
공지 XE1 신규 보안 취약점 신고 포상제 종료 안내   2019.10.23
공지 [중요!] Object 클래스의 이름 변경 안내(PHP 7.2 버전 호환성) [7] 2020.08.16 by 천재 2017.11.27
XE 1.5.1.6 긴급 보안패치 [9] 2012.08.27 by vibram five fingers 2012.02.06
[완료]공식사이트 점검안내   2012.02.06
XE 1.6 베타 개발 계획 [29] 2012.08.24 by vibram shoes 2012.02.03
XE 1.5.1.5 배포 [11] 2012.08.24 by vibram five fingers 2012.02.01
XE 1.5.1.4 긴급 보안패치 [6] 2012.08.24 by vibram shoes 2012.01.28
2012년 1월 공헌자/커미터 현황 [1] 2012.08.24 by vibram shoes 2012.01.25
XE 1.5.1.3 및 Textyle Package 배포 [8] 2012.08.24 by vibram five fingers 2012.01.25
1월 11일, XE 공식사이트 DB 정기점검. [3] 2012.08.24 by vibram five fingers 2012.01.10
XE core 10000리비전 돌파... [11] 2012.08.24 by vibram five fingers 2012.01.06
업로드 파일 사이즈 제한 해제 [2] 2012.08.24 by vibram five fingers 2012.01.05
XE 공식 매뉴얼 사용 권리 업데이트 [5] 2012.08.24 by vibram five fingers 2012.01.04
PHP4 및 PostgreSQL, SQLite, Firebird 지원 중단 안내. [6] 2012.08.24 by vibram five fingers 2012.01.04
XE 1.5.1.2 배포 [10] 2012.08.24 by vibram five fingers 2012.01.02
업로드 파일 사이즈 제한 안내 [10] 2012.08.24 by vibram five fingers 2011.12.31
XE 1.5.1.1 배포 [15] 2012.08.24 by vibram five fingers 2011.12.30
공식사이트 점검 안내 [2] 2012.08.24 by vibram five fingers 2011.12.27
Document Module 업데이트 후 알수 없는 오류에 대한 해결 방법 [15] 2012.08.24 by vibram five fingers 2011.12.20
XE 프로젝트 호스팅 12/31 종료 [7] 2012.08.24 by vibram five fingers 2011.12.19
XE기여자 기념품 발송 안내 [21] 2012.08.24 by vibram shoes 2011.12.15
2011년 12월 공헌자/커미터 현황 [9] 2012.08.24 by vibram five fingers 2011.12.15