Doctrine - как инициализировать значения БД - PullRequest
2 голосов
/ 21 января 2020

Я использую Doctrine 2.7.0 в приложении Symfony 5.0. Я определяю свои таблицы БД в своих сущностях с помощью аннотаций ORM. Я создаю миграцию с помощью Symfony maker, как этот

php bin/console make:migration

, а затем создаю необработанную базу данных (mySql) из нее с помощью

php bin/console doctrine:migrations:migrate

. В результате получается хороший sh БД.

Теперь - мне интересно, можно ли определить базовые данные для таблиц с аннотациями. Я не имею в виду устанавливать значения по умолчанию для свойств, но добавлять записи в таблицы, которые всегда нужны БД.

Так что в основном я хочу, чтобы миграция также вставляла записи в БД. Это возможно?

1 Ответ

3 голосов
/ 21 января 2020

Данные, которые требуются для работы приложения в виде справочных таблиц, должны быть частью миграции. Вы также должны предоставить правильную процедуру отката для этих данных, чтобы обеспечить обратную совместимость миграции.

Однако вы должны воздерживаться от использования Doctrine для этих миграций, так как более позднее изменение в сопоставлении сущностей et c. нарушит все предыдущие миграции.

Вы можете технически использовать приборы для загрузки этих данных. Хотя по умолчанию фикстуры усекают всю базу данных, если не указан флаг - append , что делает его непригодным для такого рода операций, поскольку удаление наборов данных с помощью этой опции невозможно.

...