Laravel 5 - 跳过迁移

2022-08-30 19:42:45

我已经迁移了现有的Laravel 5应用程序和数据库。只有没有迁移表,所以我用以下命令创建了这个表:

php artisan migrate:install

在数据库迁移文件夹中存在三个文件(2015_12_08_134409_create_tables_script.php、2015_12_08_134410_create_foreign.php 2015_12_08_134411_create_index.php)

当使用“php artisan migrate”时,迁移文件夹中的脚本将再次执行。这是我想避免的。是否可以在Laravel的迁移表中插入记录,以便跳过这些脚本,并在再次执行“php artisan migration”时选取新脚本?


答案 1

创建迁移表后,插入以下记录:

insert into migrations(migration, batch) values('2015_12_08_134409_create_tables_script',1);
insert into migrations(migration, batch) values('2015_12_08_134410_create_foreign',1);
insert into migrations(migration, batch) values('2015_12_08_134411_create_index',1);

因此,工匠会将这些迁移理解为“执行”


答案 2

另一种方法是创建一个文件夹,以放置您想要跳过的迁移,此方法适用于已迁移或尚未迁移的文件。database/migrations

# Execute commands in laravel project root folder
mkdir database/migrations/ignored
mv database/migrations/2018_08_14_000000_should_ignore_migration.php \
   database/migrations/ignored/

# Check migration has been skipped
php artisan migrate:status

2018-09-25更新:

Artisan CLI 扩展命令支持在 Laravel 5.4 或更高版本上迁移特定文件的单个命令:

# Install extension
composer require caloskao/migrate-specific

# Migrate
php artisan migrate:specific /path/to/migration_file.php

推荐