我如何 migrate:refresh 我的数据库中的特定 table?

How do I migrate:refresh a specific table in my database?

我想migrate:refresh一个特定的table调用分数。我试过这个:

php artisan migrate:refresh --path=/database/migrations/scores

但没有说明要迁移。

是的,您可以使用指定迁移路径来执行此操作。

按照以下步骤操作:

首先创建迁移,使用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一个特定的table(例如: scores2 table), 所以你可以这样使用:

php artisan migrate:refresh --path=database/migrations/2019_09_04_045500_create_scores2_table.php 

它只刷新 scores2 table 而不是所有其他 table

如果单个迁移不是最后一个,则无法刷新,但可以step返回迁移链。

假设您有五次迁移并且您的 table 排在第四位,您可以这样做:

php artisan migrate:refresh --step=2

使用此命令刷新最后两个迁移。

请注意,每个迁移文件名都包含一个时间戳,它允许 Laravel 确定迁移的顺序。

您可以使用 --path 参数,但它应该是命令搜索迁移的目录,而不是单个迁移文件。

如果你运行:

php artisan help migrate:refresh

您可以看到接受的所有参数。

是的,您可以 migrate:refresh 选择迁移。您从代码行中删除了 .php 扩展名。

它应该看起来像这个例子

php artisan migrate:refresh --path=/database/migrations/2020_09_28_224702_create_addresses_table.php

因此,如果 scores 是您的迁移文件名,请添加 .php

php artisan migrate:refresh --path=/database/migrations/scores