如何使用 Laravel 5.2 的 Schema Builder 创建部分索引?
例如,除了查询
create index alternate_listing_not_null on listings(alternate_listings_id) where alternate_listings_id is not null
,我将如何使用架构生成器语法来执行此操作?
我使用的是 PostgreSQL 9.4。
我不确定您可以...使用架构生成器。但是,您可以在迁移中使用原始语句。
我不确定
DB::statement
是否存在于 5.2 中,但如果不存在,DB::select
应该也能工作。
class AddPartialIndex extends Migration
{
public function up()
{
DB::statement('create index alternate_listing_not_null on listings(alternate_listings_id) where alternate_listings_id is not null');
}
public function down()
{
DB::statement('drop index if exists alternate_listing_not_null');
}
}
由于它位于迁移文件中,您仍然可以获得迁移的所有好处(迁移、回滚)。