2013-02-04 2 views
0

기하학 컬럼이있는 Postgres + PostGIS 데이터베이스가 있습니다.DBIx :: Class를 사용하여 PostGIS 기하 구조 열에 GiST 색인을 만드는 방법은 무엇입니까?

색인을 추가하고 싶습니다.

create index plot_idx_location on plot using gist (location); 

은 내가 sqlt_deploy_hook 방법을 사용하여 DBIx :: 클래스에서 인덱스를 생성하는 방법을 알고,하지만 난 add_index 등의 구문은 위의 문장을 생성하는 것을 확실입니다.

SQL :: Translator 문서 (http://search.cpan.org/~frew/SQL-Translator-0.11016/lib/SQL/Translator/Schema/Index.pm) 읽기가 도움이되지 않는 것 같습니다. "options"매개 변수를 사용하는 예제는 없으며 소스 코드를 간략하게 살펴보면 지원되지 않을 수도 있습니다.

이렇게하는 방법이 있습니까? 아니면 대신 sqlt_deploy_hook 메서드에서 SQL 문을 하드 코딩해야합니까?

답변

-1

DBIx :: Class 자체는 DDL 쿼리를 생성하지 않으므로 SQL :: Translator가 수행합니다. 스키마 클래스의 "deploy"메소드 수정 자나 deployment_statements 메소드를 사용하여 이와 같은 특수 색인을 직접 생성해야합니다.

+0

실제로 내 질문을 읽었습니까? – Rob

+1

네, 제 대답을 읽었습니까? [DBIx :: Class :: Schema :: sqlt_deploy_hook] (https://metacpan.org/module/DBIx::Class::Schema#sqlt_deploy_hook)이 말하기를 sqlt_deploy_hook은 올바른 장소가 아닙니다. 'sqlt_deploy_hook은에 의해 호출됩니다. "deployment_statements"는 "deploy"전에 차례로 호출됩니다. 따라서 후크는 SQL :: Translator :: Schema 객체를 조작하기 위해서만 사용될 수 있습니다. SQL :: Translator에서 생성 할 수없는 배포 후 명령문을 실행하려면 현재 제안 된 방법은 "deploy"를 오버로드하고 dbh_do를 사용하는 것입니다. –