Команда migrate
Команда migrate запускает все миграции, которые еще не были применены к базе данных. Она проверяет таблицу migrations, в которой хранится история выполненных миграций, и применяет только новые файлы. Команда выполняется через Artisan CLI и может принимать дополнительные параметры для настройки процесса.
Синтаксис
php artisan migrate
Команда имеет несколько опций для гибкого управления миграциями:
php artisan migrate --force
php artisan migrate --pretend
php artisan migrate --seed
php artisan migrate --database=mysql
php artisan migrate --path=database/migrations/custom
Пример
Выполним все новые миграции для разработки:
php artisan migrate
Результат выполнения команды:
"Migration table created successfully."
"Migrating: 2024_01_01_000000_create_users_table"
"Migrated: 2024_01_01_000000_create_users_table"
"Migrating: 2024_01_02_000000_create_posts_table"
"Migrated: 2024_01_02_000000_create_posts_table"
Пример
Принудительное выполнение миграций в production без подтверждения:
php artisan migrate --force
Результат выполнения команды:
"Migrating: 2024_01_03_000000_add_avatar_to_users"
"Migrated: 2024_01_03_000000_add_avatar_to_users"
Пример
Предварительный просмотр SQL-запросов без их фактического выполнения:
php artisan migrate --pretend
Результат выполнения команды:
"CREATE TABLE posts (id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255), body TEXT, created_at TIMESTAMP, updated_at TIMESTAMP)"
"ALTER TABLE users ADD COLUMN avatar VARCHAR(255)"
Пример
Выполнение миграций только из определенной директории:
php artisan migrate --path=database/migrations/custom
Результат выполнения команды:
"Migrating: 2024_01_04_000000_custom_table"
"Migrated: 2024_01_04_000000_custom_table"
Пример
Выполнение миграций и одновременный запуск сидов (наполнение тестовыми данными):
php artisan migrate --seed
Результат выполнения команды:
"Migrating: 2024_01_01_000000_create_users_table"
"Migrated: 2024_01_01_000000_create_users_table"
"Database seeding completed successfully."
Пример
Выполнение миграций для определенного подключения к базе данных:
php artisan migrate --database=pgsql
Результат выполнения команды:
"Migration table created successfully."
"Migrating: 2024_01_01_000000_create_users_table"
"Migrated: 2024_01_01_000000_create_users_table"
Смотрите также
-
команда
migrate-fresh,
которая удаляет все таблицы и выполняет миграции заново -
команда
migrate-rollback,
которая откатывает последнюю партию миграций -
команда
migrate-status,
которая показывает состояние всех миграций -
команда
migrate-refresh,
которая откатывает и заново выполняет миграции