Привет.
Потребовалось удалить таблицу, сказали что не нужен функционал.
Думаю как это в миграцих отразить.
В up() понятно что dropTable
, а в down(), думаете createTable() для ее последнего состояния (она же могла меняться многими миграциями)?
Миграция по удалению таблицы
Миграция по удалению таблицы
Yii2 universal module sceleton - for basic and advanced templates
Re: Миграция по удалению таблицы
я бы сделал в down() createTable.
Миграции должны быть сделаны так, что на пустой схеме их можно гонять туда сюда.
Исключение - когда ну очень муторно, сложно восстановить какие-то изменения.
ну например - добавили колонку, пересчитали что-то и записали в нее, а две колонки которые нужны были для пересчета удалили (вместе с данными в них ессно), потому что - новый код уже сразу пересчитывает и записывает в новую колонку.
Как восстановить? да вобщем никак. только в up надо было бекапить содержимое этих колонок, и т.п.
Но если можно сделать восстановление до состояния перед этой миграцией - надо делать восстановление.
Миграции должны быть сделаны так, что на пустой схеме их можно гонять туда сюда.
Исключение - когда ну очень муторно, сложно восстановить какие-то изменения.
ну например - добавили колонку, пересчитали что-то и записали в нее, а две колонки которые нужны были для пересчета удалили (вместе с данными в них ессно), потому что - новый код уже сразу пересчитывает и записывает в новую колонку.
Как восстановить? да вобщем никак. только в up надо было бекапить содержимое этих колонок, и т.п.
Но если можно сделать восстановление до состояния перед этой миграцией - надо делать восстановление.
Не желайте странного, и не будет у вас головной боли чтобы достичь этого странного.
Тем более что окажется что оно вам и не нужно было, странное это.
Тем более что окажется что оно вам и не нужно было, странное это.
Re: Миграция по удалению таблицы
Это хороший вопрос, однако стоит уточнить, будут ли удаляться с проекта все файлы, которые относились к функционалу.
Другими словами, при действии down() может не создаться таблица, т.к. модель удалена была
Re: Миграция по удалению таблицы
да, все файлы будут удаляться. А зачем бы они были нужны без таблицы?
Таблицы не зависят от моделей, вспомните - сначала создается таблица, потом модель под нее.
p.s. Сейчас написал миграцию, но по сути перекопипастил из предыдущих миграций, но только наоборот, где было в down, стало в up. И как то не сильно впечатлен процессом, чисто из соображений DRY.
Yii2 universal module sceleton - for basic and advanced templates