@P747

Особенности по миграциям в Symfony?

Добрый день!
Подскажите, на Yii чтобы например добавить колонку, внешний ключ, индекс, таблицу и т.д., нужно создать новый класс миграции и туда добавить через конструктор или чистый sql код,. Миграция "оборачивается" в транзакцию, после успешной миграции записывается в таблицу миграций. Далее вручную или автоматически обновляется модель(некий аналог сущности в Symfony).
Я заметил что при создании новой миграции в нее помещается код(например на создание таблицы), который уже есть в старой миграции. Может конечно что-то не так понял или настроил.
Вообщем если мне например нужно добавить к таблице колонку, индекс или поменять тип колонки и т.д., если поменять это в сущности, при вызове Make bundle это все сгенерирует новую миграцию с нужным кодом например для добавления колонки? Не добавится ли уже существующий sql код например на создание таблицу, которая есть?
  • Вопрос задан
  • 413 просмотров
Решения вопроса 1
@Flying
В Symfony по-умолчанию используется Doctrine, для неё есть Doctrine Migrations.

Поскольку Doctrine - data mapper, то вам не нужно "добавить к таблице колонку / индекс / поменять тип колонки", вместо этого вам нужно менять свои entities и mappings для них (подробнее здесь), а затем создать для неё миграцию, используя команду doctrine:migrations:diff для Symfony console. Т.к. команда работает на сравнении схем базы данных - в итоге вы получите миграцию с SQL скриптами для применения и отката изменений, внесённых в ваши mappings.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы