执行"更改表"时发生异常



我有很多问题与许多关联我有2个实体一个命名用户

/**
 * @ManyToMany(targetEntity="DataSiteBundleEntitySite", mappedBy="user")
 * @ORMJoinColumn(
 *     name="id_site",
 *     referencedColumnName="id_site",
 *     nullable=false,
 *     onDelete="CASCADE"
 * )
 */
private $site;

,另一个被命名为网站

/**
 * @Groups({"site-read","site-write"})
 * @ORMManyToMany(targetEntity="UserBundleEntityUser" , inversedBy="site")
 * @ORMJoinColumn(
 *     name="id_user",
 *     referencedColumnName="id_user",
 *     nullable=false,
 *     onDelete="CASCADE"
 * )
 *
 */
private $user;

当我尝试做doctrine:schema:update --force

我明白了在AbstractMysqldriver.php行121中:

执行'Alter Table Site_user添加约束FK_B6096BB0F6BD1646外键(site_id(引用sp_site(id(sp_site(id(时,

发生了例外。

sqlstate [hy000]:一般错误:1215无法添加外键约束

您的问题是有一个具有现有约束的表。我认为有两个解决方案

如果您在开发人员中,则可以重建数据库

php bin/console doctrine:database:drop --force
php bin/console doctrine:database:create
php bin/console doctrine:schema:update --force

如果您正在生产中,我认为您需要制作脚本以获取数据,保存某个地方,删除表并重新制作它,或在SQL中创建脚本以跳过此问题

相关内容

  • 没有找到相关文章