Я изучаю Symfony 4 и только что следовал руководству о базах данных и доктрине. Теперь у меня есть новый объект Product.php со связанным репозиторием ProductRepository.php вместе с новой таблицей в БД. Теперь я хочу удалить этот объект/репозиторий и соответствующим образом обновить базу данных.
Я думал, что могу просто удалить Product.php и запустить php bin/console make:migration:diff.
Однако ничего не меняется. Есть ли какой-то простой список команд для удаления всех ссылок на объект (я не вижу никаких изменений в файлах конфигурации - я использую аннотации) или мне нужно выяснить, какие файлы были созданы/изменены, а затем пойти и вручную удалить Таблица.
К счастью, php bin/console make:migration:diff не удаляет таблицы, не являющиеся объектами. Представьте, что у вас есть таблицы, не используемые в сущностях, которые вы хотите сохранить.
Возможный дубликат Удаление таблицы с помощью Doctrine2 и Symfony2






Вы можете сделать это вручную, удалив эти файлы:
Если вы сгенерировали CRUD для своего объекта Product, вы должны удалить:
Если вы находитесь в рабочей среде, вы должны запустить php bin/console cache:clear, чтобы удалить кеш.
Подумайте, прежде чем обновлять схему базы данных. Для обновления запустите php bin/console d:s:u --force, но помните о последствиях в рабочей среде.
Пожалуйста, не предлагайте запускать doctrine:schema:update в рабочей среде.
Мы не знаем, действительно ли он находится в производственной среде! Я только хочу уточнить, что схема базы данных не изменится, даже если мы очистим кеш :-)
Но вы заявляете: «Если вы находитесь в рабочей среде (...), очистите кеш (...). Затем запустите обновление схемы» - это звучит как совет запускать эти команды в рабочей среде.
php bin/console make:migration:diffгенерирует миграцию, сравнивая базу данных и вашу информацию.php bin/console doctrine:migrations:migrateвыполнит миграцию.