Document Module 업데이트 후 알수 없는 오류에 대한 해결 방법
2011.12.20 18:31
안녕하세요.
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가 있다.
다시 한번 당부의 말씀을 드리자면 꼭 테스트 장비에서 테스트 해 보신 후 실 서비스에 반영해 주시기 바랍니다.
위 내용과 관련해서 질문이 있으시면 댓글 달아 주시면 확인 가능한 부분까지 설명해 드리도록 하겠습니다.
감사합니다.
댓글 15
제목 | 최종 글 | 날짜 |
---|---|---|
공지 XE1 신규 보안 취약점 신고 포상제 종료 안내 | 2019.10.23 | |
공지 [중요!] Object 클래스의 이름 변경 안내(PHP 7.2 버전 호환성) [7] | 2020.08.16 by 천재 | 2017.11.27 |
XE 1.5.1.13 긴급보안패치 [3] | 2020.03.14 by Isabel Marant Boots | 2012.03.15 |
XE 1.5.1.12 긴급 패치 [2] | 2012.08.20 by Isabel Marant Boots | 2012.03.12 |
XE 1.5.1.11 긴급 보안패치 [3] | 2012.08.20 by Isabel Marant Boots | 2012.03.08 |
XE 1.5.1.7 긴급 보안패치 [12] | 2012.08.20 by Isabel Marant Boots | 2012.02.10 |
XE 이슈에 투표해 주세요. [1] | 2012.08.22 by replica watches | 2012.02.13 |
2012년 2월 공헌자/커미터 현황 [5] | 2012.08.22 by hermes bags | 2012.02.09 |
XE 1.5.1.8 긴급 보안패치 [1] | 2012.08.22 by hermes bags | 2012.02.15 |
공식사이트에 Core 1.5를 적용합니다. [4] | 2012.08.22 by rolex replica uk | 2011.09.26 |
XE 1.5.1.10 배포 [10] | 2012.08.22 by chanel bags | 2012.02.29 |
XE 1.4.5.9 배포 [3] | 2012.08.22 by hair extensions | 2011.08.11 |
XE 1.5.1 배포 [20] | 2012.08.24 by vibram five fingers | 2011.11.30 |
XE사용자 매뉴얼v2.0 업데이트 (한국어 버전) [8] | 2012.08.24 by vibram five fingers | 2011.12.05 |
2011년 12월 공헌자/커미터 현황 [9] | 2012.08.24 by vibram five fingers | 2011.12.15 |
XE기여자 기념품 발송 안내 [21] | 2012.08.24 by vibram shoes | 2011.12.15 |
XE 프로젝트 호스팅 12/31 종료 [7] | 2012.08.24 by vibram five fingers | 2011.12.19 |
Document Module 업데이트 후 알수 없는 오류에 대한 해결 방법 [15] | 2012.08.24 by vibram five fingers | 2011.12.20 |
공식사이트 점검 안내 [2] | 2012.08.24 by vibram five fingers | 2011.12.27 |
XE 1.5.1.1 배포 [15] | 2012.08.24 by vibram five fingers | 2011.12.30 |
업로드 파일 사이즈 제한 안내 [10] | 2012.08.24 by vibram five fingers | 2011.12.31 |
XE 1.5.1.2 배포 [10] | 2012.08.24 by vibram five fingers | 2012.01.02 |