2016-04-13 24 views
0

Postgres 9.4, JSONB alanlarını kullanıyorum, bunlar iyi çalışıyor. Ancak GIN indeksi doktrin eklediğimde, dizin oluşturulma başarısız oluyor.Postgres 9.4 INDEX KULLANIMI GIN

class Version20160314132147_Gin_Indexes_content extends AbstractMigration { 

public function up(Schema $schema) { 
    $this->addSql('CREATE INDEX contents_properties_ix ON contents USING gin (properties);'); 
} 

/** 
* @param Schema $schema 
*/ 
public function down(Schema $schema) { 
    $this->addSql('DROP INDEX contents_properties_ix;'); 
} 
} 

Hata: [Doktrin \ DBal \ Sürücü \ PDOException] sqlstate [42704]: Tanımsız nesne: 7 HATA: veri türü json erişim yöntemi "Cin" İPUCU için varsayılan operatör sınıfı vardır: Sen gerekir dizin için bir operatör sınıfı belirtin veya veri türü için bir varsayılan operatör sınıfı tanımlayın.

Composer.json { "ince/ince": "~ 2.6", "öğretisi/orm": "~ 2.5", "öğretisi/DBal": "2.5", "Symfony'nin/yaml" : "2.8 @dev", "doktrin/cache": "[email protected]", "symfony/konsol": "2.8 @dev", "symfony/sınıf yükleyici": "^ 2.7 .4 ", " doctrine/migrations ":" ~ 1.0 ", " predis/predis ":" ~ 1.0.1 ", " guzzlehttp/guzzle ":" ~ 5.0 ", " dal/dal ":" ~ 1.0 ", " php-di/php-di ":"^5.1.0 ", "monolog/monolog": "[email protected]", "boldtrn/jsonb-bundle": "~ 1.0", "opsway/doctrine-dbal-postgresql": "~ 0.1", "fzaninotto/faker": "~ 1.3.0", "aws/aws-sdk-php": "^ 3.9" }

cevap

1

Postgres properties bir metin türü olmamak ve dolayısıyla endeks edememek değil sütun hakkında sızlanan gibi görünüyor o GIN kullanarak.

Sen başarıyı metne sütun döküm olabilir:

CREATE INDEX contents_properties_ix ON contents USING gin (properties::text);