Команда migrate:status
Команда migrate:status предназначена для просмотра статуса всех существующих миграций в приложении Laravel. Она выводит таблицу с информацией о каждой миграции, включая её имя, дату и время выполнения, а также статус (выполнена или нет). Это полезно для проверки актуальности базы данных и выявления проблемных миграций. Команда не требует дополнительных параметров и работает с текущим подключением к базе данных.
Синтаксис
php artisan migrate:status
Команда выводит таблицу со столбцами: 'Ran?' (выполнена ли миграция), 'Migration' (имя файла миграции) и 'Batch' (номер пакета, в котором была выполнена миграция). Если миграция ещё не выполнена, в столбце 'Ran?' будет стоять 'No', а столбец 'Batch' останется пустым.
Пример базового использования
Давайте выполним команду для просмотра статуса всех миграций:
php artisan migrate:status
Результат выполнения команды:
"+------+--------------------------------------+-------+"
"| Ran? | Migration | Batch |"
"+------+--------------------------------------+-------+"
"| Yes | 2014_10_12_000000_create_users_table | 1 |"
"| Yes | 2014_10_12_100000_create_password... | 1 |"
"| No | 2024_01_15_120000_create_posts_table | |"
"| No | 2024_01_20_100000_create_comments... | |"
"+------+--------------------------------------+-------+"
Из таблицы видно, что две миграции уже выполнены (в пакете 1), а две другие ещё ожидают применения.
Пример с подключением к другой базе данных
Команду можно выполнить с указанием подключения к базе данных через опцию --database:
php artisan migrate:status --database=pgsql
Результат выполнения команды:
"+------+------------------------------------------+-------+"
"| Ran? | Migration | Batch |"
"+------+------------------------------------------+-------+"
"| Yes | 2014_10_12_000000_create_users_table | 1 |"
"| Yes | 2014_10_12_100000_create_password... | 1 |"
"| Yes | 2024_01_15_120000_create_posts_table | 2 |"
"| No | 2024_01_20_100000_create_comments... | |"
"+------+------------------------------------------+-------+"
При использовании опции --database команда проверяет миграции в указанном подключении к базе данных. В данном примере показан результат для подключения 'pgsql', где три миграции уже выполнены, а одна ещё нет.
Пример с отображением пути к файлам миграций
Команда поддерживает опцию --path для ограничения проверки только миграциями в определённой директории. Это позволяет, например, проверить статус миграций, созданных для конкретного пакета или модуля:
php artisan migrate:status --path=database/migrations/blog
Результат выполнения команды:
"+------+------------------------------------------+-------+"
"| Ran? | Migration | Batch |"
"+------+------------------------------------------+-------+"
"| No | 2024_02_01_100000_create_blog_posts... | |"
"| No | 2024_02_05_120000_create_blog_comment... | |"
"+------+------------------------------------------+-------+"
В этом примере показан статус только для миграций, находящихся в директории 'blog'. Обе миграции ещё не выполнены, что говорит о необходимости их применения.
Пример с псевдонимами миграций
При использовании пакетов или модулей миграции часто имеют префиксы или псевдонимы. Опция --realpath позволяет отображать полные пути к файлам миграций:
php artisan migrate:status --realpath
Результат выполнения команды:
"+------+--------------------------------------------------------+-------+"
"| Ran? | Migration | Batch |"
"+------+--------------------------------------------------------+-------+"
"| Yes | /var/www/project/database/migrations/2014_10_12_000... | 1 |"
"| Yes | /var/www/project/database/migrations/2014_10_12_100... | 1 |"
"| No | /var/www/project/database/migrations/blog/2024_02_0... | |"
"+------+--------------------------------------------------------+-------+"
Опция --realpath полезна при работе с большим количеством миграций из разных директорий, когда важно видеть полный путь к каждому файлу.
Смотрите также
-
команда
migrate,
которая выполняет все ожидающие миграции -
команда
migrate-fresh,
которая удаляет все таблицы и выполняет миграции заново -
команда
migrate-rollback,
которая откатывает последнюю партию миграций -
команда
migrate-refresh,
которая откатывает и заново выполняет все миграции