【问题标题】:The database schema is not in sync with the current mapping file (but it is !)数据库模式与当前映射文件不同步(但它是!)
【发布时间】:2019-06-13 09:33:10
【问题描述】:

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

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...

我的数据库中也是如此

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

【问题讨论】:

  • 这可能是一个错误......不幸的是,我现在没有时间向 Doctrine 团队开票。

标签: doctrine-orm symfony4


【解决方案1】:

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

我碰巧在使用 MariaDB (version 10.4.11-MariaDB - Source distribution),在文件 doctrine.yaml 中,server_version 参数的值是 5.7。 在我更正之后,错误不再发生。

您也可以查看question

【讨论】:

  • 嘿,谢谢您的回答!我不得不说我不再从事那个项目了,但是如果我再次遇到这个问题,我会注意你所说的话:)
  • 没问题。迟早会有其他人遇到同样的问题。感谢您的支持:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-03
  • 2019-11-21
  • 2010-09-10
  • 1970-01-01
  • 2021-11-25
  • 1970-01-01
相关资源
最近更新 更多