Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 如何使用DBIx::Class在PostGIS geometry列上创建GiST索引?_Perl_Postgis_Dbix Class - Fatal编程技术网

Perl 如何使用DBIx::Class在PostGIS geometry列上创建GiST索引?

Perl 如何使用DBIx::Class在PostGIS geometry列上创建GiST索引?,perl,postgis,dbix-class,Perl,Postgis,Dbix Class,我有一个带有几何列的Postgres+PostGIS数据库 我想为它们添加索引,例如 create index plot_idx_location on plot using gist (location); 我知道如何使用sqlt_deploy_hook方法在DBIx::Class中创建索引,但我不确定add_index的语法是什么来生成上述语句 阅读SQL::Translator文档()似乎没有任何帮助。没有使用“options”参数的例子,如果仔细看源代码,我怀疑它甚至不受支持 那么有没

我有一个带有几何列的Postgres+PostGIS数据库

我想为它们添加索引,例如

create index plot_idx_location on plot using gist (location);
我知道如何使用sqlt_deploy_hook方法在DBIx::Class中创建索引,但我不确定add_index的语法是什么来生成上述语句

阅读SQL::Translator文档()似乎没有任何帮助。没有使用“options”参数的例子,如果仔细看源代码,我怀疑它甚至不受支持


那么有没有办法做到这一点,或者我需要在sqlt_deploy_hook方法中硬编码SQL语句呢?

DBIx::Class本身不会生成DDL查询,SQL::Translator会。
您必须自己生成这样的特殊索引,例如在模式类中的after'deploy'方法修饰符中,或者使用deployment_语句方法。

是的,您读过我的答案了吗?No sqlt_deploy_hook不是正确的位置,因为上面说:“请注意,sqlt_deploy_hook由“deployment_语句”调用,而“deploy_语句”又在“deploy”之前调用。因此,在将SQL::Translator::Schema对象转换为SQL并提供给数据库之前,钩子只能用于操作该对象。如果要执行SQL::Translator无法生成的部署后语句,当前建议的方法是重载“deploy”并使用dbh_do