Doctrine ORM - удалить атрибут из объекта?

Я хочу сделать очень простую вещь, но не могу найти решения. Я начал разрабатывать свое приложение с помощью Symfony4 в комплекте с Doctrine. Вначале я проектировал модель базы данных, но в процессе разработки я понял, что оригинальное решение не подходит для того, что я хочу делать. Прямо сейчас я хочу удалить атрибут из объекта. В простом SQL я бы сделал ALTER TABLE table DROP COLUMN column, а затем воссоздал бы его снова с новыми параметрами. Однако это решение дало мне ошибку в Doctrine, поэтому я также изменил модель PHP. Опять еще одна ошибка. Ладно, это не похоже на то, как я хочу идти. Есть ли какое-нибудь решение моей проблемы, кроме как слишком глубоко копаться в Доктрине? Лучше всего было бы что-то простое, как описано в команде SQL выше?

вы изменяете определение сущности в своей «модели php» и выполняете bin/console doctrine:schema:update --dump-sql --force' to update your physical database. you can execute bin / console doctrine: schema: validate` перед тем, как проверить, есть ли какие-либо ошибки в определениях ваших сущностей.

LBA 02.08.2018 11:28

doctrine: schema: update плохо, если у вас есть среды dev / prod / etc. Лучше используйте миграции.

revengeance 02.08.2018 12:11

Спасибо, да, я хочу иметь среду разработки / производства.

JohnyProkie 02.08.2018 12:36
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
4
3
12 619
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Когда дело доходит до доктрины с Symfony, вы должны забыть о таблицах, столбцах и т. д. И начать думать с помощью объектов (иначе нет смысла использовать доктрину для абстракции). Для вашей проблемы вы должны просто удалить атрибут в своей сущности.

Тогда вам следует использовать:

php bin/console doctrine:migrations:diff

Это создаст файл миграции в папке / migrations. Этот файл будет содержать SQL, который будет выполнять доктрина. Он позволяет вам проверить, соответствует ли запрос ожидаемому, в противном случае вы можете напрямую изменить его в этом файле или адаптировать свою сущность и сгенерировать новый файл миграции.

Когда вы довольны этим, вы можете выполнить его с помощью:

php bin/console doctrine:migrations:migrate

Большой! Это именно то, что я искал. Спасибо.

JohnyProkie 02.08.2018 14:39

Другие вопросы по теме