【发布时间】:2019-10-30 21:28:05
【问题描述】:
编辑:原来同一台机器上的其他项目也有同样的问题。问题是针对一个特定项目的:
我有一个 Symfony4 项目,其中有几个实体(通过 make:entity 创建)。我刚刚注意到最后 4 次迁移中有完全相同的查询(是的,我在两者之间运行迁移)。示例:
$this->addSql('ALTER TABLE event CHANGE visible_from visible_from DATETIME DEFAULT NULL, CHANGE visible_till visible_till DATETIME DEFAULT NULL, CHANGE max_signups max_signups INT DEFAULT NULL');
我手动运行了该查询并实际更新了表。然后我创建了一个新的迁移来测试:上面的查询再次出现。
我已清除缓存,运行doctrine:cache:clear-metadata,仔细检查了奇怪的东西,但一切正常。
我每次都有相同的 3 个查询,它们都有一个共同点:它们具有 nullable=true。所有其他实体都没有 nullable=true。
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $maxSignups;
向下迁移可能是一个提示:
ALTER TABLE event CHANGE visible_from visible_from DATETIME DEFAULT \'NULL\',
This I find odd---^
MariaDB 版本:10.2.14
PHP:7.2.4
symfony/orm-pack: "^1.0"
谁知道为什么?
【问题讨论】:
-
github.com/doctrine/dbal/issues/3321#issuecomment-447642346 建议...您可能需要设置正确的 mariadb 版本? (从github.com/doctrine/dbal/issues/3006窃取的想法)
-
上面写着
driver: 'pdo_mysql'和server_version: '5.7',这是我的mysql版本。不确定是否应该说 mariaDB。我其他项目没有这个问题,同样的环境 -
我的立场是正确的,我的其他项目也有同样的问题。只有可以为空的属性
标签: php symfony doctrine-orm database-migration