포럼
schemas Query cache 는 버그라 보기 어려울까요?
2012.02.01 10:59
저는 개인적으로 Extra 사용을 하지 않으려는 주의 입니다. XE 를 끌어안고 가야겠다는 신념이 부족할수도 있는데요.
추후 CMS 변경으로 인해서 DB 이전시에도 명쾌하게 하기 위해서 필요한 필드값은 추가해서 사용하고 있었습니다.
사실.. 한눈에 보여서 좋기도 하구요.
1.4.x 버전까지는 이상없이 사용했던 Module 에서의 executeQuery 가 1.5.x 버전부터는 적용이 안되더군요.
카르마님께서 지적하신 부분이죠. BoardEX 가 사라진 배경이라고 말씀하시기도 했구요.
사용자가 임의로 documents table 에 추가한 Column 을 반영할 수 없는것이 문제였습니다. 사실 개발자가 아니라서
대충 Tip 줏어다가 만든 모듈이라서 그럴 수도 있는데요.
사용자가 추가한 Column 을 document module 의 schemas.xml 쪽에 추가하지 않고 (코어를 건드리지 않는다는뜻)
사용할 수 있는 방법은 없는건가요?
댓글 5
-
카르마
2012.02.01 11:12
-
고수군
2012.02.01 11:36
네 확장모듈을 통해서 별도의 테이블을 만들어 쓰면 Core 쪽과 별개라 생각 됩니다.
그럼 질문이 있는데요 카르마님.
flagboard 라는 확장 모듈을 만들었고, 확장모듈이니 include 는 board 모듈을 가지고 옵니다.
1. if(!$oDB->isColumnExists("documents", "flag")) return true; 를 통해서 설치시 컬럼 추가
2. 국가를 선택하여 글 작성
3. $output = executeQuery('flagboard.updateDocumentFlag', $obj);
테이블을 따로 생성하게 되면 &getModel('flagboard') 를 통해서 불러와야하는 것도 있구요. 개인적인 생각으론 documents table 에 속해도 될만한 컬럼이 아닌가 해서 입니다. 국가를 담기 위해서 table 을 만드는게 소모적이기도 해보여서요.
가장 큰 이유는.. 이미 1.4.x 버전에서 너무 많은 DB 가 쌓여 있습니다. 제가 DBA 도 아니고.. 이걸 옮겨서
뭔가 해보려는 의지가 약하네요. ;ㅇ; 에잇!! 무능력의 탓입니다.
-
카르마
2012.02.01 11:42
확장모듈 자체에서 별도의 테이블을 생성하시면 됩니다.
예를들어 xe_flag_documents 라는 테이블을 만들고
기존 documents에 있는 것은 빼고 저장할 자료만 테이블로 입력합니다.
document_srl과 flag라는 컬럼을 만들어서
기존 자료는 그냥 documents에 입력하고 flag 데이터만 document_srl과 함께 별도로 저장합니다.
물론 불러올때 documents와 join으로 flag 자료를 찾아서 가져오는 과정이 필요하겠지요...
-
고수군
2012.02.01 12:12
물론 불러올때 documents와 join으로 flag 자료를 찾아서 가져오는 과정이 필요하겠지요
---------------------- 네, 이 과정이 필요 없이 그냥 document 함수로 불러만 오면 끝이거든요.
아무쪼록 조언 감사합니다. 모듈을 만들 수 있는자와 꼼수를 부를 수 있는자..
사실 꼼수를 부리는걸 원할지도 모르겠습니다.
-
백성찬
2012.02.01 11:52
그거 1.5 시작 할 때 부터 노래를 볼러도 안해줍니다.
컬럼을 추가한 경우 관리자가 선택해서 포함 할 수 있도록 만들어 달라고 했는데 안해줍니다.
속도가 느려진다고? 추가가 필요 없는 사람은 추가하지 않으면 될 것이고 추가가 필요한 사람은 추가해서 쓰면 되는데 왜 안해주는지 알 수 없습니다.
게시판 목록에 추가하듯이 비슷하게라도 해서 필요한 것을 추가하거나 뺄 수 있어야 하는데 코어에서 지정한 컬럼은 싫어도 사용해야 되고 없는 것은 절대 못가져 옵니다.
해결 방법은 코어 고쳐 써야 합니다.
기다리느니 죽는 날이 더 가깝습니다.
저는 코어에 넣어서 쓰고 있고 그렇게 배포도 합니다.
확장모듈을 살펴보십시요.
확장모듈에서 별도의 테이블을 생성하고 기능을 추가하면 가능합니다.
업데이트해도 바뀌지도 않고....