2013-02-04 56 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可以。 您必须自己生成这样的特殊索引,例如在架构类或deployment_statements方法中的'deploy'方法修饰符之后。

+0

你真的看过我的问题吗? – Rob

+1

是的,你看过我的回答吗?没有sqlt_deploy_hook不是正确的地方,因为[DBIx :: Class :: Schema :: sqlt_deploy_hook](https://metacpan.org/module/DBIx::Class::Schema#sqlt_deploy_hook)说:'请注意,sqlt_deploy_hook被调用“deployment_statements”在“部署”之前被调用。因此,该钩子只能用于在将SQL :: Translator :: Schema对象转换为提供给数据库的SQL之前进行操作。如果要执行不能由SQL :: Translator生成的后置部署语句,则当前建议的方法是重载“部署”并使用dbh_do。 –

相关问题