首页 > 解决方案 > 数据库模式与当前映射文件不同步(但它是!)

问题描述

我只是在我的代码中修复了一些东西。我现在正在尝试验证我的架构

php bin/控制台原则:架构:验证

Doctrine 告诉我我的映射是正确的,但我的数据库架构不是。所以我正在做一个

架构:更新--dump-sql

这会一次又一次地导致相同的 ALTER,我已经执行了很多次。

这是 ALTER :

 ALTER TABLE migration_versions CHANGE version version VARCHAR(14) NOT NULL;

我做到了(使用--force),实体已经反映了变化:

**
 * MigrationVersions
 *
 * @ORM\Table(name="migration_versions")
 * @ORM\Entity
 */
class MigrationVersions
{
    /**
     * @var string
     *
     * @ORM\Column(name="version", type="string", length=14, nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $version;

我是对的吧?它的varchar,长度为14 ...

在我的数据库中也是如此 在此处输入图像描述

我不认为我在这里犯了错误,但我可能会遗漏一些东西。

标签: doctrine-ormsymfony4

解决方案


您是否已经验证server_version了学说配置文件中的正确?(config/packages/doctrine.yaml在 symfony5 中)

我碰巧在使用 MariaDB( version 10.4.11-MariaDB - Source distribution) 并且在文件doctrine.yamlserver_version参数具有值5.7。在我更正之后,错误不再发生。

你也可以检查这个问题


推荐阅读