2014-07-11 1 views
0

아직 시스템에 데이터베이스 스키마 버전이 없습니다. 시스템에서 사용 가능한 모든 sql 쿼리를 스키마에 대해 확인하는 방법이 있는지 알고 싶습니다. 정확함 (구문상의 정확성이 없음).sql 쿼리가 실행되기 전에 스키마의 정확성을 확인하는 방법

요구 사항은 쿼리에 언급 된 테이블/열을 현재 데이터베이스 버전에서 사용할 수 있는지 확인해야 서비스를 시작하는 동안 오류를 찾을 수 있습니다.

우리는 mysql과 mybatis를 사용하고 있습니다. 당신의 SQL의 모든 조건을 정의 할 때 당신의 매퍼 파일에서

+0

SELECT 명령문의 경우 [** EXPLAIN'] (http://dev.mysql.com/doc/refman/5.5/en/explain.html) 접두어를 붙이면 오류없이 MySQL 응답을 확인할 수 있습니다. 어떤 열이 존재 하는지를 결정하기 위해'EXPLAIN'과'information_schema'를 사용하십시오. 슬프게도 나는 이것을 mybatis에 어떻게 적용 할 것인지 모른다. 어쩌면 다른 누군가가 이걸 만들 수있을거야 ...? – TheConstructor

답변

0

, 당신은 같은 이름의 해당 하나가 존재 확인하기 위해 information_schema를 검사 이름에 추가 (또는 유사)를 확인 만들 수 있습니다 열. 그런 다음이 모든 것을 호출 할 수 있습니다. 시작 중에 쿼리가 완료되는지 확인하십시오.

TestNG를 또는 스팍 또는 유사한을 사용하여 일련의 테스트 설정 될 것이다 (I 궁극적으로 깨끗하고 잠재적으로 더 철저 것 같아요) 또 다른 방법 즉 그루비 사용하지만 (내가 스팍 선호 그래서 귀하의 상황에 이상적이 아닐 수도 있습니다) 매퍼 진술이 모두 실행됩니다.

하나 이상의 열이 없기 때문에 테스트에서 예외가 발생하면 JDBC 드라이버에서 예외가 발생하므로 테스트가 실패합니다. 또한 테스트의 일부로 쿼리의 예상 결과를 추가하는 경우 쿼리의 정확성/동작을 테스트하기 때문에 나중에 쿼리가 변경되면 (그리고 테스트 실패의 원인이 될 수 있음) 변경.

관련 문제