2017-11-20 11 views
2

と教義の移行を使用するためにどのように私は、PostgresSQLのデータベースではsymfony 2.8のプロジェクトを持っているし、ID生成戦略は、IDENTITYが、私は正しくpostressql

doctrine:schema:update 

または

doctrine:migrations:migrate 
のように入力します。すべてのコマンドであります

リターンこのようなエラー:

An exception occurred while executing 'SELECT min_value, increment_by FROM "abstract_group_id_seq"': 

SQLSTATE [42703]:不定コラム:7 ERROR:コラム "MIN_VALUE"存在しません
LINE 1:SELECT min_value、increment_by FROM "abstract_group_id_seq"

スキーマ名の問題ですか? Doctrineを正しく設定する方法を誰かが知っていますか?あなたにこの1にファイル/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/PostgreSqlSchemaManager.php

に位置
^

+1

にです本当に良い質問です! – keegzer

+0

どのバージョンのPostgresを使用していますか? DoctrineにPG10に関するいくつかの問題があります。[このバグ報告](https://stackoverflow.com/questions/47397435/how-to-correctly-use-doctrine-migrations-with-postressql) – iainn

+0

はい、postgresのバージョンはPG10です –

答えて

0

の変更方法の_getPortableSequenceDefinitionを()ありがとう:

protected function _getPortableSequenceDefinition($sequence) 
    { 
     if ($sequence['schemaname'] != 'public') { 
      $sequenceName = $sequence['schemaname'] . "." . $sequence['relname']; 
     } else { 
      $sequenceName = $sequence['relname']; 
     } 

     $version = floatval($this->_conn->getWrappedConnection()->getServerVersion()); 

     if ($version >= 10) {$data = $this->_conn->fetchAll('SELECT min_value, increment_by FROM pg_sequences WHERE schemaname = \'public\' AND sequencename = '.$this->_conn->quote($sequenceName)); 
     } 
     else 
     { 
      $data = $this->_conn->fetchAll('SELECT min_value, increment_by FROM ' . $this->_platform->quoteIdentifier($sequenceName)); 
     } 

     return new Sequence($sequenceName, $data[0]['increment_by'], $data[0]['min_value']); 
    }