mysql - Symfony Doctrine 迁移重命名表与关系

标签 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');

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

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

最佳答案

:(

清除缓存的正常方法缺少 Doctrine 的映射。

运行后: php bin/console d:c:clear-metadata

它又开始工作了。

关于mysql - Symfony Doctrine 迁移重命名表与关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47740899/

相关文章:

C# 左连接两个数据表

php - 向用户推荐还不是 friend 的 friend

php - Symfony2,文件上传 - 删除旧的并在编辑中创建新的

php - 如何将 HTML 存储在 Doctrine YML fixture 中

php - 未找到类 'Doctrine\Common\Inflector\Inflector'

php - 获取url中的mysql json参数

php - 如何将唯一 ID 附加到 json 数组 - OctoberCMS/Laravel

postgresql - 在自定义模式而不是公共(public)模式中配置doctrine_migration_versions表

php - 向 Symfony 2 表单元素添加错误

zend-framework - 在 Doctrine 模型中使用静态查找方法是一个好习惯吗