Php 带有Oracle数据库的Symfony 2.8-标识符太长
我正在尝试使用来自的Oracle数据库将phpcr_odm配置为Symfony 2.8 这当我试图运行Php 带有Oracle数据库的Symfony 2.8-标识符太长,php,oracle,symfony,doctrine-orm,Php,Oracle,Symfony,Doctrine Orm,我正在尝试使用来自的Oracle数据库将phpcr_odm配置为Symfony 2.8 这当我试图运行php应用程序/控制台原则:schema:create时,我的控制台返回错误 [Doctrine\DBAL\Exception\DriverException] An exception occurred while executing 'CREATE UNIQUE INDEX UNIQ_37E65615460D9FD7413BC13C1AC10DC4E7087E10 ON phpc
php应用程序/控制台原则:schema:create
时,我的控制台返回错误
[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中执行唯一索引之前限制它们。有人能告诉我如何解决这个问题吗
致以最诚挚的问候如果您自己在实体上声明唯一约束,您可以手动设置其名称:
@ORM\Table(name="phpcr_binarydata", uniqueConstraints={@ORM\UniqueConstraint(name="SMALL_KEY_NAME_HERE", columns={"node_id", "property_name", "workspace_name", "idx"})})
如果数据库创建不在您的控制之下,则在
原则\DBAL\Schema\SchemaConfig::$maxIdentifierLength
中配置最大标识符长度,您可以尝试扩展和覆盖该长度。在SQL-92中,标准的更高版本似乎可以选择允许128个字符的名称。否则这就是解决方案:“phpcr\u binarydata”不是我创建的表,我发现jackalope供应商正在使用此表,因此我认为我无法为此唯一索引创建唯一约束