doctrine-orm - 数据库模式与当前映射文件不同步(但它是!)
问题描述
我只是在我的代码中修复了一些东西。我现在正在尝试验证我的架构
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 ...
我不认为我在这里犯了错误,但我可能会遗漏一些东西。
解决方案
您是否已经验证server_version
了学说配置文件中的正确?(config/packages/doctrine.yaml
在 symfony5 中)
我碰巧在使用 MariaDB( version 10.4.11-MariaDB - Source distribution
) 并且在文件doctrine.yaml
中server_version
参数具有值5.7
。在我更正之后,错误不再发生。
你也可以检查这个问题
推荐阅读
- pandas - pandas 如何以矢量化方式获得满足特定条件的行索引?
- alignment - 如何在 TableView 的一行中的 ImageView 上方和下方添加空间?
- java - Spring Boot multipartfile 是不可修改的吗?
- matlab - 如何专门 fprintf 文件上的数组
- magento2 - Magento 2图像上传错误:未捕获的语法错误:无效或意外令牌
- c - char * argv[] 是指针数组或 char 字符串数组
- c# - 如何在 c# 电子邮件发件人中修复 img src
- python - 虚函数和实函数有什么区别?
- c - 为什么 printf 在警报后从不执行?
- git - 取消大推后Git挂起