2016-11-02 18 views
2

symfony 2.8でOracleデータベースを使用して からlinkのphpcr_odmを構成しようとしています。私はphp app/console doctrine:schema:create私のコンソールを実行しようとしているときにエラーOracleデータベースとSymfony 2.8 - 識別子が長すぎます

[Doctrine\DBAL\Exception\DriverException] 
    An exception occurred while executing 'CREATE UNIQUE INDEX UNIQ_37E65615460D9FD7413BC13C1AC10DC4E7087E10 ON phpc 
    r_binarydata (node_id, property_name, workspace_name, idx)': 
    ORA-00972: identifier is too long 
    [Doctrine\DBAL\Driver\OCI8\OCI8Exception] 
    ORA-00972: identifier is too long 

を返す私は、Oracle SQLは、30文字の一意のインデックスを制限することを知っているが、私は彼らはsymfonyの中で実行される前に一意索引を制限する方法がわかりません。誰かがこの問題を解決する方法を教えてもらえますか?

よろしく

答えて

2

あなたのエンティティに自分を一意制約を宣言する場合は、手動でその名前を設定することができます。

@ORM\Table(name="phpcr_binarydata", uniqueConstraints={@ORM\UniqueConstraint(name="SMALL_KEY_NAME_HERE", columns={"node_id", "property_name", "workspace_name", "idx"})}) 

をデータベースの作成があなたのコントロール下で最大識別子長がで設定されていない場合Doctrine\DBAL\Schema\SchemaConfig::$maxIdentifierLengthあなたが拡張して上書きしようとする可能性があります。

+0

'phpcr_binarydata'は私によって作成されたテーブルではありません、私はジャックロープのベンダーがこのテーブルを使用していることが分かりました。私はこのユニークなインデックス –

関連する問題