数据库模式与当前映射文件不同步(但是!)。

时间:2019-06-13 09:33:10

标签: doctrine-orm symfony4

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

  

php bin /控制台学说:schema:validate

Doctrine告诉我我的映射是正确的,但是我的数据库模式却不正确。所以我在做

  

schema:update --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 ...

在我的数据库中也是 enter image description here

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

1 个答案:

答案 0 :(得分:1)

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

我偶然发现我正在使用MariaDB(version 10.4.11-MariaDB - Source distribution),并且在文件doctrine.yaml中,server_version参数的值为5.7。 更正了该错误之后,该错误不再发生。

您也可以选中此question