Я пытаюсь импортировать одну таблицу из базы данных с помощью следующей команды:
php bin/console doctrine:mapping:import --force InventBundle xml --filter = "invent"
но не работает я получаю следующее сообщение:
Table invent2 has no primary key. Doctrine does not support reverse engineering from tables that don't have a primary key.
Я не могу удалить invet2, но мне нужно импортировать только таблицу изобретений.
Есть идеи?
Редактировать:
Проблема в том, что фильтр не использует одинаковые, и invent и invent2 созданы для filter = "invet", но единственный invent2 основан при использовании filter = "invent2".




У меня такая же проблема, как и у вас. Параметр --фильтр, похоже, не работает (в моем случае я использую несколько подключений к базе данных, возможно, поэтому)
Вот как я это решил:
В вашем файле app/config/config.yml вам нужно будет добавить "schema_filter".
В этом случае Doctrine, похоже, использует preg_match, поэтому вам нужно использовать такой синтаксис, чтобы соответствовать имени вашей таблицы:
schema_filter: ~^YourTableName$~
Примечание: Если вы используете Symfony4, то ваш интересующий файл - config/packages/doctrine.yaml
Вот полный фрагмент:
// app/config/config.yml
doctrine:
dbal:
driver: pdo_mysql
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
schema_filter: ~^YourTableName$~