У меня есть документ наследования с типом SINGLE_COLLECTION
, настроенный в моем приложении Symfony 4.4. Когда я запускаю команду bin/console doctrine:mongodb:schema:create
, возникает ошибка a collection 'db.Person' already exists
.
Все было сделано согласно документации: https://www.doctrine-project.org/projects/doctrine-mongodb-odm/en/2.0/reference/inheritance-mapping.html#single -collection-inheritance
src / Document / Person. php
<?php
namespace App\Document;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
/**
* @MongoDB\Document
* @MongoDB\InheritanceType("SINGLE_COLLECTION")
* @MongoDB\DiscriminatorField("type")
* @MongoDB\DiscriminatorMap({"person"=Person::class, "employee"=Employee::class})
*/
class Person
{
/**
* @var integer|null
*
* @MongoDB\Id
*/
protected $id;
/**
* @var string|null
*
* @MongoDB\Field(type="string")
*/
protected $name;
}
src / Document / Employee. php
<?php
namespace App\Document;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
/**
* @MongoDB\Document
*/
class Employee extends Person
{
/**
* @var string|null
*
* @MongoDB\Field(type="string")
*/
protected $grade;
}
Это похоже на команду пытается создать коллекцию БД для каждого класса Document, игнорируя объявление типа SINGLE_COLLECTION.
Как это исправить?