Документ наследования ODM с ошибкой создания схемы типа SINGLE_COLLECTION

У меня есть документ наследования с типом 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 AppDocument; use DoctrineODMMongoDBMappingAnnotations as MongoDB; /** * @MongoDBDocument * @MongoDBInheritanceType(«SINGLE_COLLECTION») * @MongoDBDiscriminatorField(«type») * @MongoDBDiscriminatorMap({«person»=Person::class, «employee»=Employee::class}) */ class Person { /** * @var integer|null * * @MongoDBId */ protected $id; /** * @var string|null * * @MongoDBField(type=»string») */ protected $name; }

src / Document / Employee.php

<?php namespace AppDocument; use DoctrineODMMongoDBMappingAnnotations as MongoDB; /** * @MongoDBDocument */ class Employee extends Person { /** * @var string|null * * @MongoDBField(type=»string») */ protected $grade; }

Похоже, что команда пытается создать коллекцию БД для каждого класса Document, игнорируя объявление типа SINGLE_COLLECTION.

Как это исправить?

Коллекции в MongoDB не нужно создавать явно. Что такое неудачная операция?   —  person Mateusz K.    schedule 05.05.2020

Я знаю, что это не нужно, но я предпочитаю создавать полную схему БД для индексов. Расширенный ответ об ошибке: MongoDBDriverExceptionCommandException: a collection ‘db.Person’ already exists in vendor/mongodb/mongodb/src/Operation/CreateCollection.php:222   —  person Mateusz K.    schedule 05.05.2020

Что такое полная трассировка стека?   —  person Mateusz K.    schedule 05.05.2020

Олег, у меня не получается stacktrace. Когда я запустил bin/console doctrine:mongodb:schema:create -vvv, я получил ответ: a collection ‘db.Person’ already exists Created indexes for all classes   —  person Mateusz K.    schedule 06.05.2020

Источник: ledsshop.ru

Стиль жизни - Здоровье!