Загружаем изображение…
Кладбище миграций в Yii2
- Миграции...миграции никогда не меняются -
tl;dr
В начале проекта всё аккуратно, красиво, лакончно:
Через пару месяцев проблема нарастает:
А через год папка migrations выглядит как кладбище древней цивилизации. ☠
Но в Yii2 предусмотрели способ навести порядок - можно разнести миграции по папкам.
Создаём миграцию сразу в нужной директории:
И немного подсказываем фреймворку, где теперь их искать:
После этого yii migrate спокойно пройдётся по всем папкам и применит всё как обычно.
А структура проекта станет намного приятнее:
Yii2 всё поймёт - даже на кладбище файлов.
А вот человек через полгода хотя бы будет понимать, где искать
#php #backend #yii2 #migration #миграции #web #разработка
- Миграции...миграции никогда не меняются -
tl;dr
Если папкаmigrationsразрослась до размеров энциклопедии -
разнесите миграции по подпапкам и добавьте их вmigrationPath.
В начале проекта всё аккуратно, красиво, лакончно:
m240101_create_user_table.php
m240102_add_index_to_user.phpЧерез пару месяцев проблема нарастает:
m240101_create_user_table.php
m240102_add_index_to_user.php
m240203_fix_index.php
m240205_fix_index_again.php
m240206_final_fix_index_really.php
m240207_why_it_does_not_work.phpА через год папка migrations выглядит как кладбище древней цивилизации. ☠
Но в Yii2 предусмотрели способ навести порядок - можно разнести миграции по папкам.
Создаём миграцию сразу в нужной директории:
php yii migrate/create --migrationPath=@app/migrations/campaign create_campaign_tableИ немного подсказываем фреймворку, где теперь их искать:
'controllerMap' => [
'migrate' => [
'class' => MigrateController::class,
'migrationPath' => [
'@app/migrations',
'@app/migrations/attachment',
'@app/migrations/campaign',
'@app/migrations/company',
'@app/migrations/contacts',
'@app/migrations/geobase',
'@app/migrations/invoice',
]
],
]После этого yii migrate спокойно пройдётся по всем папкам и применит всё как обычно.
А структура проекта станет намного приятнее:
migrations/
├ attachments/
├ campaign/
├ company/
├ contacts/
└ invoice/Yii2 всё поймёт - даже на кладбище файлов.
А вот человек через полгода хотя бы будет понимать, где искать
fix_final_really_final_column.php.#php #backend #yii2 #migration #миграции #web #разработка
Просмотры: 76