Очистка миграций и ускорение тестов с помощью команды schema:dump

Новая команда schema: dump будет выпущена вместе с Laravel 8 в конце этого года. Эта команда полезна для существующих проектов, потому что она удаляет старые миграции, которые вам больше не нужны, и ускоряет процесс тестирования и CI. Тейлор Отвелл объясняет эту особенность в своем запросе на извлечение:


Этот PR добавляет поддержку новой команды php artisan schema: dump, которая использует mysqldump или pgdump для выгрузки текущего состояния вашей схемы в файл database / schema / {connection} -schema.mysql.

Если этот файл существует, и php artisan migrate или php artisan migrate: fresh is run и миграции еще не выполнялись для базы данных (таблица миграции пуста), этот файл схемы сначала будет загружен в базу данных, а затем все оставшиеся миграции будут быть запущенным Это означает, что эффективно этот файл схемы обычно используется только во время локальной разработки или во время тестирования CI. В продакшене вы, как правило, уже выполняли миграции, которые выполнялись в прошлом, поэтому этот файл схемы никогда не будет запущен.


После запуска schema: dump и файл дампа схемы существует в проекте, вы можете удалить старые миграции, которые сделали его рабочим.

Эта функция решает две проблемы:

  1. Она очищает старые миграции в папке схемы, которая может быть довольно большой в старых проектах.
  2. Тесты выполняются намного быстрее из-за файла схемы, и Laravel не нужно выполнять все миграции во время тестирования.


Команда будет выглядеть так в вашем проекте:

php artisan schema:dump

# Automatically clean up old files
php artisan schema:dump --prune

# Specify the connection name
php artisan schema:dump --database=pgsql


Эта функция была объединена с master, что означает, что она будет доступна в Laravel 8.


Читайте также

Как начинающему (и не только) программисту поднять уровень своей ЗП?

Не все программисты знают когда просить повышение и какие аргументы приводить. В этой статье вы найдёте план действий, который позволит вам повысить уровень вашей заработной платы в кратчайшие сроки.


Оставить коментарий

your email address will not be published. required fields are marked *

Имя *
Email *
Website