gpt4 book ai didi

php - Doctrine Doctrine :schema:update command produces the same set of queries again and again

转载 作者:行者123 更新时间:2023-11-29 06:21:02 25 4
gpt4 key购买 nike

我使用 Doctrine 2.2.3 和 Symfony 2.0.12,我对 Doctrine 有疑问,当我启动 doctrine:schema:update 时,它​​一次又一次地产生相同的查询集,如下所示:

ALTER TABLE Testimonial CHANGE frontPage frontPage TINYINT(1) NOT NULL;
ALTER TABLE Slider CHANGE active active TINYINT(1) DEFAULT NULL;
ALTER TABLE LPSlider CHANGE active active TINYINT(1) DEFAULT NULL;
ALTER TABLE CustomerDesign CHANGE requestProof requestProof TINYINT(1) DEFAULT NULL, CHANGE isBlank isBlank TINYINT(1) DEFAULT NULL, CHANGE hidden hidden TINYINT(1) DEFAULT NULL;
ALTER TABLE SessionDesign CHANGE requestProof requestProof TINYINT(1) DEFAULT NULL, CHANGE isBlank isBlank TINYINT(1) DEFAULT NULL;

还有更多,如您所见,这只是“TINYINT(1) DEFAULT NULL”更改,如果我使用 --force 运行命令,它会成功更新架构:

Database schema updated successfully! "30" queries were executed

但是如果我再次运行 doctrine:schema:update --dump-sql 它会显示相同的查询,我检查了数据库,所有这些字段都已经是“TINYINT(1) DEFAULT NULL”。

我使用 PHP Entities 注释,示例:

/**
* @var boolean $frontPage
*
* @ORM\Column(name="frontPage", type="boolean")
*/
private $frontPage;

我无法将 Doctrine 更新到 v2.3 或更高版本,它不适用于我的 Symfony 版本,更新 Symfony 可能真的很痛苦,因为这是一个非常庞大的项目。

更新:

我设法将应用程序升级到最新版本的 Symfony 2.7.5 和 Doctrine 2.5.1,但仍然有同样的问题,尝试使用 doctrine:schema:create 创建新数据库,但 doctrine:schema:update 再次显示相同的内容“TINYINT(1) NOT NULL”更改。

最佳答案

好吧,我终于找到了问题所在,它出在配置文件中,出于某种原因手动将 tinyint 类型映射到 smallint:

doctrine:
dbal:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: UTF8
mapping_types:
enum: string
tinyint: smallint # this is what caused all the problems with booleand fields

关于php - Doctrine Doctrine :schema:update command produces the same set of queries again and again,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33260367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com