mysql - Doctrine 更新不断将我的整数更改为 varchar

标签 mysql symfony doctrine-orm

我目前正在开发一个 Symfony 2.8 项目,该项目实现了 OpenCart 数据库。我已经设置了一些映射,以便能够提取客户/地址/订单详细信息,到目前为止似乎没问题。

但是,在我更改实体中的某些内容以定制表后,我尝试 --force 更新我的数据库,但出现以下错误:

[Doctrine\DBAL\Exception\DriverException] An exception occurred while executing 'ALTER TABLE oc73_customer CHANGE address_id address_id VARCHAR(255) NOT NULL': SQLSTATE[HY000]: General error: 1832 Cannot change column 'address_id': used in a foreign key constraint 'FK_ B25E4F72F5B7AF75'

[Doctrine\DBAL\Driver\PDOException] SQLSTATE[HY000]: General error: 1832 Cannot change column 'address_id': used in a foreign key constraint 'FK_ B25E4F72F5B7AF75'

在我将 oc73_customer 中的 address_id 更改为 INT 以便匹配外键后,我的更新似乎正在尝试将其更改为 VARCHAR。我检查我的实体 (Oc73Customer):

/**
 * @var integer
 *
 * @ORM\Column(name="address_id", type="integer")
*/
private $addressId;

在我的 oc73_address 表中,我的实体条目:

/**
 * @var integer
 *
 * @ORM\Id
 * @ORM\Column(name="address_id", type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
*/
private $addressId;

这也设置为整数 - 那么为什么我的更新不断尝试将 oc73_customer 表中的 address_id 更改为 VARCHAR?我在代码中找不到任何地方表明它应该是这样?

如果有任何帮助,这是我的 config.yml:

doctrine:
    dbal:
        default_connection: default
        connections:
            default:
                driver:   pdo_mysql
                host:     "%database_host%"
                port:     "%database_port%"
                dbname:   "%database_name%"
                user:     "%database_user%"
                password: "%database_password%"
                charset:  UTF8
                schema_filter: ~^(?!oc73_simple_*)~
                mapping_types:
                  enum: string
   orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        naming_strategy: doctrine.orm.naming_strategy.underscore
        auto_mapping: true

非常感谢任何有关这方面的帮助 - 使用 Doctrine 和 Symfony 处理 OpenCart 数据库似乎是一个真正令人头痛的问题。

谢谢 迈克尔

最佳答案

已解决 - 事实证明这是一个缓存问题。当我清除缓存并删除目录时,数据库更新起作用并匹配我指定的列定义。

关于mysql - Doctrine 更新不断将我的整数更改为 varchar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35220874/

相关文章:

mysql - 全文匹配表达式可以在连接条件内工作吗

symfony - 用phpunit单元测试一个symfony服务类

php - Symfony3 : How to delete current user and redirect to home?

php - Mysql REGEX 匹配查询

PHP搜索结果分页

php - 使用自定义 Doctrine 2 hydrator 进行依赖注入(inject)

symfony - 检查 prod env 中的学说设置

symfony - Doctrine 在循环中更新实体、持久化还是刷新?

mysql - 如何将 MQTT Mosquitto 发布事件存储到 MySQL 中?

php - Symfony3授权流程