【发布时间】:2019-09-03 11:38:45
【问题描述】:
我想迁移:刷新一个名为 score 的特定表。我试过这个:
php artisan migrate:refresh --path=/database/migrations/scores
但它没有说明要迁移。
【问题讨论】:
-
我看到
--path仅用于创建迁移
我想迁移:刷新一个名为 score 的特定表。我试过这个:
php artisan migrate:refresh --path=/database/migrations/scores
但它没有说明要迁移。
【问题讨论】:
--path 仅用于创建迁移
如果单个迁移不是最后一个,则您无法刷新它,但您可以step 回到迁移链中。
假设您有五个迁移并且您的表位于第四位,您可以这样做:
php artisan migrate:refresh --step=2
使用此命令可以刷新最后两个迁移。
请注意,每个迁移文件名都包含一个时间戳,它允许 Laravel 确定迁移的顺序。
您可以使用--path 参数,但它应该是一个目录,命令在其中搜索迁移而不是单个迁移文件。
如果你运行:
php artisan help migrate:refresh
你可以看到所有接受的参数。
【讨论】:
是的,您可以使用“指定迁移路径”来执行此操作。
按照以下步骤操作:
首先要创建一个迁移,使用make:migration 命令:
php artisan make:migration create_scores1_table
php artisan make:migration create_scores2_table
php artisan make:migration create_scores3_table
新的迁移将放置在您的 database/migrations 目录中。每个迁移文件名都包含一个时间戳,如下所示:
2019_09_04_045427_create_scores1_table.php
2019_09_04_045500_create_scores2_table.php
2019_09_04_045518_create_scores3_table.php
现在,你想refresh一个特定的表(例如: scores2表),所以你可以这样使用:
php artisan migrate:refresh --path=database/migrations/2019_09_04_045500_create_scores2_table.php
它只刷新 scores2 表,而不是表的所有其余部分
【讨论】:
migrate:refresh 有问题?
是的,您可以迁移:刷新选定的迁移。您从代码行中删除了 .php 扩展名。
它应该看起来像这个例子
php artisan migrate:refresh --path=/database/migrations/2020_09_28_224702_create_addresses_table.php
所以,如果 score 是您的迁移文件名,请添加 .php
php artisan migrate:refresh --path=/database/migrations/scores
【讨论】: