【问题标题】:How do I migrate:refresh a specific table in my database?如何迁移:刷新数据库中的特定表?
【发布时间】:2019-09-03 11:38:45
【问题描述】:

我想迁移:刷新一个名为 score 的特定表。我试过这个:

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

但它没有说明要迁移。

【问题讨论】:

  • 我看到--path 仅用于创建迁移

标签: laravel refresh migrate


【解决方案1】:

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

假设您有五个迁移并且您的表位于第四位,您可以这样做:

php artisan migrate:refresh --step=2

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

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

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

如果你运行:

php artisan help migrate:refresh

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

【讨论】:

    【解决方案2】:

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

    按照以下步骤操作:

    首先要创建一个迁移,使用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 表,而不是表的所有其余部分

    【讨论】:

    • OP 与 migrate:refresh 有问题?
    • 是的@vivek_23 我已经更新了我的答案,请检查并让我知道它是否正确?
    【解决方案3】:

    是的,您可以迁移:刷新选定的迁移。您从代码行中删除了 .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
    

    【讨论】:

      猜你喜欢
      • 2018-04-20
      • 2017-06-27
      • 1970-01-01
      • 2017-07-30
      • 2015-11-11
      • 1970-01-01
      • 2015-11-12
      • 2021-02-28
      • 1970-01-01
      相关资源
      最近更新 更多