原则不会为新实体生成迁移



大家好!我已经创建了一个新的实体:

<?php

namespace InveoczCMSEntity;

class BannerCategory implements BannerCategoryInterface
{

/** @var int|null */
protected $id;

/** @return int|null */
public function getId(): ?int
{
return $this->id;
}
}

及其XML映射:

<?xml version="1.0" encoding="UTF-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping"
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
<mapped-superclass name="InveoczCMSEntityBannerCategory" table="inveocz_cms_banner_category">
<id name="id" column="id" type="integer">
<generator strategy="AUTO"/>
</id>
</mapped-superclass>
</doctrine-mapping>

有问题,学说已经注册了这个新实体,但是运行

doctrine:migration:diff

不会在我的项目中生成任何新的迁移。在此之前,为其他实体生成它是可以的。当我运行:

doctrine:schema:validate

模式和映射都是有效的。相同:

doctrine:mapping:info

会告诉我我的" invoocz CMSEntityBannerCategory"是由学说注册的。

Symfony: 4.4.18

PHP: 7.4.9

doctrine.yaml:

doctrine:
dbal:
driver: 'pdo_mysql'
server_version: '5.7'
charset: UTF8

url: '%env(resolve:DATABASE_URL)%'
orm:
auto_generate_proxy_classes: '%kernel.debug%'
auto_mapping: true
mappings:
App:
is_bundle: false
type: xml
dir: '%kernel.project_dir%/src/Resources/config/doctrine/model'
prefix: 'AppEntity'
alias: App

dql:
datetime_functions:
date: DoctrineExtensionsQueryMysqlDate
month: DoctrineExtensionsQueryMysqlMonth
year: DoctrineExtensionsQueryMysqlYear
numeric_functions:
round: DoctrineExtensionsQueryMysqlRound

运行:

doctrine:cache:clear-metadata

没有帮助,丢弃我的docker容器也没有帮助。谁能给我提示一下哪里出了问题?非常感谢您的帮助

您的XML映射您的实体为映射的超类. 这不是数据库中真正存在的实体,只能继承通过他人。

使用这个XML映射来映射可以持久化和从DB中检索的实体:

<doctrine-mapping>
<entity name="InveoczCMSEntityBannerCategory" table="inveocz_cms_banner_category">
<id name="id" column="id" type="integer">
<generator strategy="AUTO"/>
</id>
</entity>
</doctrine-mapping>

来源:https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/inheritance-mapping.html

最新更新