我在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 。有没有办法阻止索引重命名?
相关作曲家数据: