小编cje*_*wby的帖子

如何停止Doctrine2 Migrations:Diff总是添加数据库中已存在的外键关系?

我正在使用doctrine2和symfony2.1项目.我有一个与其他表有多对多关系的实体.这些多对一的外键关系已在数据库中更新,但每次运行迁移时:diff或schema:update --dump-sql都会添加相同的更新命令以再次添加外键关系.当我运行schema时:验证它说我的映射与我的数据库不同步.

我的应用程序工作正常,关系正常工作,我的数据库中的架构看起来正确.为什么教条还在尝试添加这些外键?

这是我的代码(对于一个有问题的参数):

在我的"Ticket"实体中,我有:

/**
 * Authenticated User who scored the ticket. 
 *
 * @ORM\ManyToOne(targetEntity="CS\SecurityBundle\Entity\User")
 * @ORM\JoinColumn(name="scoring_user_id", referencedColumnName="id")
 */
protected $scoringUser;
Run Code Online (Sandbox Code Playgroud)

我目前将其设置为单向,因此User实体中没有inversedBy.

这会在我的迁移或模式中生成以下内容:更新转储,即使它已在数据库中:

$this->addSql("ALTER TABLE tickets ADD CONSTRAINT FK_54469DF4BB0D9452 FOREIGN KEY (scoring_user_id) REFERENCES users (id)");
Run Code Online (Sandbox Code Playgroud)

知道我在这里做错了吗?

php mysql symfony doctrine-orm doctrine-migrations

24
推荐指数
1
解决办法
2042
查看次数

标签 统计

doctrine-migrations ×1

doctrine-orm ×1

mysql ×1

php ×1

symfony ×1