我已经迁移了现有的Laravel 5应用程序和数据库.目前还没有迁移表,所以我使用以下命令创建了它:
php artisan migrate:install
Run Code Online (Sandbox Code Playgroud)
在数据库迁移文件夹中存在三个文件(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 migrate'再次执行,将跳过这些脚本并拾取新脚本?
Ser*_*lla 19
创建迁移表后,插入以下记录:
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);
Run Code Online (Sandbox Code Playgroud)
因此,工匠会将这些迁移理解为"已执行"
另一种方法是在下面创建一个文件夹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
Run Code Online (Sandbox Code Playgroud)
此Artisan CLI扩展命令是单个命令,用于迁移Laravel 5.4或更高版本上的特定文件:
# Install extension
composer require caloskao/migrate-specific
# Migrate
php artisan migrate:specific /path/to/migration_file.php
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8800 次 |
| 最近记录: |