【问题标题】:Mark migration as run in laravel将迁移标记为在 laravel 中运行
【发布时间】:2018-08-04 03:30:16
【问题描述】:

我的迁移失败了,所以我只是在 MySQL Workbench 中手动运行了一个查询。

是否有工匠命令将迁移标记为完成?这样当我运行未来的迁移时,它会跳过我知道不需要运行的迁移。

我可以用这个命令列出它们和它们的状态,看看哪些已经运行,哪些没有运行:

php artisan migrate:status 

如果没有命令,我可以手动将条目插入到数据库迁移表中。 (但目前还没有迁移:P)

我想我也可以...删除迁移。

【问题讨论】:

    标签: laravel laravel-artisan artisan-migrate


    【解决方案1】:

    你写的是你直接在数据库中运行迁移的 sql,所以我假设你运行另外 2 个语句也可以。

    使用 laravel 5.7(可能还有一些较低版本),您需要在数据库中填充迁移信息(在migrations 表中)。

    您需要的信息是migration(不带.php 扩展名的文件名)和batch 编号(例如,在回滚迁移时决定要立即运行哪些迁移)

    首先你必须看到最后一个批号是:

    SELECT MAX(batch) from migrations;
    

    假设上面的查询返回42,那么我们要插入批号为42 + 1 = 43的数据

    假设您要标记为运行的迁移是database/migrations/2019_01_29_091850_update_jobs_table_for_laravel_5_3.php

    填充您需要运行的信息:

    -- note that you should not include the .php extension
    INSERT INTO migrations VALUES ("2019_01_29_091850_update_jobs_table_for_laravel_5_3", 43);
    

    然后运行php artisan migrate:status 将报告迁移为运行。

    也许您可以通过一个查询来完成任务...我将把该任务留给 sql 专家的 cmets。

    【讨论】:

    • 提示:您需要确保迁移名称前面的日期的时间戳部分与您的 migration:status 显示的完全匹配。我犯了一个错误,简单地使用了我在迁移文件上看到的时间,类似于 2021_07_29_150329(附加到“_my_migration_name”)。但我一直处于“未运行”状态。我看到“迁移:状态”显示 2021_07_29_183341,所以当我更新表条目时,迁移状态正确显示为“运行”。显然,即使是名称的那一部分也很重要。
    【解决方案2】:

    我刚刚做了以下事情:

    1. 注释掉YourMigrationClass::up() 方法的内容。像这样:

      class AddSessionIdToActivitiesTable extends Migration
      {
      
          public function up()
          {
              /* commenting this out:
              Schema::table('activities', function (Blueprint $table) {
                  $table->integer('session_id')->nullable();
              });
              */
          }
      
    2. 运行:php artisan migrate

    3. 检查它是否标记为“Ran?”:php artisan migrate:status

    4. (可选)取消注释方法的内容,使其在您的 VCS 中用作文档。

    【讨论】:

      【解决方案3】:

      您始终可以创建自己的工匠命令。

      【讨论】:

        【解决方案4】:

        目前(Laravel

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-07-08
          • 1970-01-01
          • 2020-10-24
          • 1970-01-01
          • 2021-02-24
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多