我正在尝试使用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');
运行迁移后,关系(连接列)不会更改,仍会引用旧的列名。我也清除了缓存。
有人知道如何在不丢失关系数据的情况下更改表名和外键吗?
答案 0 :(得分:0)
:(
清除缓存的常规方法是缺少教义的映射。
跑步后: php bin / console d:c:clear-metadata
它再次运作。