Учитывая существующую базу данных с 1+ таблиц, работает
./symfony doctrine:generate-migrations-db
приведет к миграции файлов создается для каждой таблицы. Кроме того, данный каталог, как /lib/model/doctrine
наполненной уже существующих моделей классов, работает
./symfony doctrine:generate-migrations-models
приведет migraiton файлы создаются для каждой модели.
С таблицами в базе данных, с или без schema.yml содержания, и без каких-либо моделей в lib/model/doctrine
, вам просто необходимо убедиться, что вы database.yml файл имеет учетные данные для правильного подключения к базе данных.
Как только вы выясните проблему с файлами переноса, которые не генерируются, я бы хотел начать с миграции.
- Сформировать свежую схему из существующей базы данных с
./symfony doctrine:build-schema
- вручную очистить файл схемы и повторно установить ваши отношения, вы уже получили существующие в вашей модели файлов (если таковые имеются).
- Reconfigure
config/databases.yml
, чтобы указать на новую базу данных пустой
- Строительные миграции с
./symfony doctrine:generate-migrations-diff
. Это создаст миграцию на основе вашего файла схемы, чтобы довести вашу (пустая) база данных до настоящего времени
- Запустить
./symfony doctrine:migrate
и следить за ошибками. Исправьте их, установив файл схемы. Удалите миграцию, созданную на шаге 4. Сбросьте данные databse ./symfony doctrine:drop-db && ./symofny doctrine:build-db
и вернитесь к шагу 4. Продолжайте, пока вы не создадите схему, не создающую чистый набор файлов миграции, которые могут запускаться без ошибок.
- Перестроить ваши модели с
./symfony doctrine:build --model --forms --filters
Теперь у вас есть чистый schema.yml
файл, чистые переселений, которые могут принести пустую базу данных в актуальном состоянии, а также модели, которые непосредственно относятся к вашему schema.yml
файла и базы данных.
Если вы хотите, чтобы сделать новое изменение в вашу базу данных, то теперь так просто, как
- Внесите необходимые изменения в вашем
schema.yml
- Run
./symfony doctrine:generate-migrations-diff
- вручную просмотреть созданные Миграции
- Запустите
./symfony doctrine:migrate
, чтобы убедиться, что миграции выполняются без ошибок.
- Перестройте свою модель, формы и фильтры
./symfony doctrine:build --model --forms --filters
Пройти через этот процесс может время от времени разочаровывать, но это то, что вам нужно сделать только один раз, чтобы создать действительно хорошее, основанное на построении.