Doctrine2迁移重命名外键的索引

时间:2014-01-21 17:17:37

标签: doctrine-orm doctrine migration

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

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

实体声明:

/**
 * @ORM\Table(name="RANDOM_KEY")
 * @ORM\Entity
 */
class RandomKey { 
 ...

关系声明:

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

迁移结果:diff commad是:

$this->addSql("ALTER INDEX FK_RANDOM_KEY_USER_I RENAME TO IDX_C54F7889A0666B6F");
我仔细研究了学说,尝试了一些调试。索引之间没有其他差异,只有名称。我还尝试将索引定义添加到 @ 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”,

0 个答案:

没有答案