我试图在我的迁移中向表中添加全文索引,但我无法使其正常工作。我试过的代码不会出错,甚至可以在我的SQL管理器中运行时运行,但在调用migrate命令时不会创建索引。
以下命令是要运行的列表中的最后一个文件。
我尝试了以下内容,评论和取消评论:
public function up()
{
//DB::raw('create index qsearch on questions (question)');
DB::raw('CREATE INDEX question_fulltext_idx ON questions USING gin(to_tsvector("english", question))');
}
表格为questions
,列为question
。
我做错了什么?
答案 0 :(得分:2)
似乎我使用了错误的引号,现在可行了:
DB::statement("CREATE INDEX question_fulltext_idx ON questions USING gin(to_tsvector('english', question))");
答案 1 :(得分:0)
我不知道CREATE INDEX ..
查询本身。但是你实际上并没有在数据库中再次运行查询。
这会“创建”一个原始查询:
DB::raw('CREATE INDEX question_fulltext_idx ON questions USING gin(to_tsvector("english", question))');
然后,新创建的原始查询将在另一个查询中使用。
这实际上是针对数据库运行您的语句:
DB::statement('CREATE INDEX question_fulltext_idx ON questions USING gin(to_tsvector("english", question))');
我希望这可以帮到你!