Doctrine2迁移重命名外键的索引

ome*_*kes 7 migration doctrine doctrine-orm

我在doctrine中重命名索引时遇到问题:迁移:差异.每次运行此命令时,doctrine都会创建sql查询以重命名数据库中的现有索引.有什么方法可以防止这种行为吗?

完整描述:我们在Oracle上有大的(大约2个hundres表)旧数据库.有约束和索引的命名约定,例如:
我们有表RANDOM_KEYUSER,从RANDOM_KEY到USER的外键(多对一),因此coinstraint的名称为FK_RANDOM_KEY_USER,相关索引为FK_RANDOM_KEY_USER_I.

实体声明:

/**
 * @ORM\Table(name="RANDOM_KEY")
 * @ORM\Entity
 */
class RandomKey { 
 ...
Run Code Online (Sandbox Code Playgroud)

关系声明:

/**
 * @var \User
 *
 * @ORM\ManyToOne(targetEntity="\User")
 * @ORM\JoinColumns({
 *   @ORM\JoinColumn(name="USER_ID", referencedColumnName="USER_ID")
 * })
 */
private $user; 
Run Code Online (Sandbox Code Playgroud)

迁移结果:diff commad是:

$this->addSql("ALTER INDEX FK_RANDOM_KEY_USER_I RENAME TO IDX_C54F7889A0666B6F");
Run Code Online (Sandbox Code Playgroud)

我调查了深度学说,尝试了一些调试.索引之间没有其他差异,只有名称.我还尝试将索引定义添加到@ ORM/Table.有没有办法阻止索引重命名?

相关作曲家数据:

  • "symfony/symfony":"2.4.*",
  • "doctrine/orm":"2.5.*",
  • "doctrine/dbal":"2.5.*",
  • "doctrine/migrations":"1.0.*@dev",
  • "doctrine/doctrine-bundle":"1.2.*",
  • "doctrine/doctrine-migrations-bundle":"2.1.*@dev",