Doctrine想要" ALTER TABLE coo_users CHANGE id id VARCHAR(255)NOT NULL;"但是每次更新架构时都希望这样做

时间:2016-12-06 18:42:33

标签: mysql doctrine-orm doctrine symfony

如果我bin/console doctrine:schema:update --force,结果是:

  

更新数据库架构...
  数据库架构更新成功! " 1"查询已执行

每次运行update命令时都会这样做。

所以,bin/console doctrine:schema:validate我看到了:

  

[Mapping] OK - 映射文件正确   [Database] FAIL - 数据库模式与当前映射文件不同步。

Doctrine想要执行的查询是相同的(bin/console doctrine:schema:update --dump-sql):

ALTER TABLE coo_users CHANGE id id VARCHAR(255) NOT NULL;

发生了什么?似乎Doctrine希望进行任何修改,因为它希望每次都可以通过无限修改将字段id再次更改为字段id

映射

/**
 * @ORM\Id
 * @ORM\Column(type="string", unique=true)
 * @ORM\GeneratedValue(strategy="IDENTITY")
 */
protected $id;

1 个答案:

答案 0 :(得分:1)

发现错误!

问题是列类型设置为string,而必须为integer

由于我使用了需要string字段的自定义生成器,因此设置为string。当我删除自定义生成器时,我没有将字段类型更改回integer,因此Doctrine每次都想编辑该字段。