Symfony миграция создать таблицу и вставить запись - PullRequest
1 голос
/ 05 февраля 2012

Я хочу создать новую таблицу и затем вставить определенную запись в проект Symfony 1.4.Я могу выполнить вставку данных вручную, но я хотел бы использовать инфраструктуру миграции, чтобы при обновлении различных существующих экземпляров эта строка создавалась при выполнении миграций.

Вот последовательность миграций:

  1. Создать новую таблицу email.
  2. Вставить строку в таблицу email.

(Обратите внимание, что это две отдельные последовательные миграции.)

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

Я мог бы использовать голые команды SQL INSERT, но это похоже на признание поражения.Есть ли другой, более удобный для доктрины способ сделать вставку данных?

1 Ответ

2 голосов
/ 06 февраля 2012

Есть способ сделать миграцию.Выполните следующие действия:

  • Обновите файл schema.yml, включив в него новую таблицу
  • Создайте новый файл задачи или устройства с новой записью
  • Выполнить symfony doctrine:generate-migrations-diff- это создаст файл миграции
  • Выполнить symfony doctrine:build --all-classes --and-migrate

Последняя строка обновит базу данных - т.е. создаст новую таблицу, а также создаст классы базовой модели.Вот параметры (связанные с классами в команде build)

 --all-classes      Build all classes
 --model            Build model classes
 --forms            Build form classes
 --filters          Build filter classes

Просто запустите задачу, чтобы вставить новую запись в БД или использовать файл новых приборов (используя symfony doctrine:data-load --append <filename>) для созданиязапись в БД.

...