2016-11-02 3 views
2

의 오라클 데이터베이스를 사용하여 symfony 2.8에서 phpcr_odm을 구성하려고합니다.이 link입니다. 내가 도망려고 할 때 php app/console doctrine:schema:create 내 콘솔 내가 오라클 SQL 30 개 문자에 대해 고유 인덱스를 제한하는 것을 알고 오류오라클 데이터베이스가있는 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 

반환하지만 나는 그들이 심포니에서 실행하기 전에 고유 인덱스를 제한하는 방법을 모르겠어요. 누군가이 문제를 해결하는 방법을 알려주실 수 있습니까?

안부

답변

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'테이블이 저에게 만들어지지 않았습니다.이 고유 인덱스에 대한 고유 제한 조건을 만들 수 있다고 생각하지 않도록 jackalope 공급 업체가이 테이블을 사용하고있는 것으로 나타났습니다. –

관련 문제