Symfony doctrine migration重命名表与关系

时间:2017-12-10 16:29:56

标签: mysql symfony doctrine alter tablename

我正在尝试使用doctrine迁移更改表名。

示例表名是model,我想将其更改为new_model。

/**
 * Class Model
 *
 * @package AppBundle\Entity
 *
 * @ORM\Table(name="new_model")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\ModelRepository")
 * @ORM\HasLifecycleCallbacks()
 */
class Model
{
......

 * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Product", inversedBy="products", fetch="EAGER", cascade={"persist"})
 * @ORM\JoinColumn(name="product_id", referencedColumnName="id", nullable=false)   
private $brand;

.......

要使用迁移脚本手动更改为列名,我使用了:

 $this->addSql('ALTER TABLE model RENAME new_model');

运行迁移后,关系(连接列)不会更改,仍会引用旧的列名。我也清除了缓存。

有人知道如何在不丢失关系数据的情况下更改表名和外键吗?

1 个答案:

答案 0 :(得分:0)

:(

清除缓存的常规方法是缺少教义的映射。

跑步后: php bin / console d:c:clear-metadata

它再次运作。