Laravel migrate:refresh 在 Composer 更新后不起作用

Posted

技术标签:

【中文标题】Laravel migrate:refresh 在 Composer 更新后不起作用【英文标题】:Laravel migrate:refresh Doesn't Work After Composer Update 【发布时间】:2019-05-05 05:16:29 【问题描述】:

标题中的命令返回如下错误信息:

类型错误:函数的参数太少 Illuminate\Database\Schema\Builder::create(), 1 传入 C:\xampp7\htdocs\assurance-web\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php 在第 221 行,预计正好 2 行

我使用以下命令安装了框架:

composer create-project --prefer-dist laravel/laravel assurance-web
version 5.7

然后执行:

php artisan make:migration create_banks_table --create=banks

我能够毫无错误地运行php artisan migrate。但是,当我运行 php artisan migrate:refresh 时,我得到了上面的错误。

这是“2018_12_04_033726_create_table_banks.php”:

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateBanksTable extends Migration

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    
        Schema::create('banks', function(Blueprint $table) 
            $table->increments('id');
            $table->string('bank_name');
            $table->string('bank_code');
            $table->timestamps();
        );
    

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    
        Schema::dropIfExists('banks');
    

【问题讨论】:

这会在运行任何迁移之前显示特定错误。如果您只使用php artisan config:cache 或任何其他工匠命令,您仍然会收到此错误。它与migrate 无关。它只是说先修复该错误。 这也可能不在那个文件中。 查看storage/logs文件夹中的错误日志文件,您会找到源代码。 【参考方案1】:

可能您的迁移表已被盗用。 您可以使用:

php artisan migrate:fresh

而不是“php artisan migrate:refresh”,迁移会看到它会起作用。

“php artisan migrate:fresh”命令物理删除所有表而不是回滚。

【讨论】:

以上是关于Laravel migrate:refresh 在 Composer 更新后不起作用的主要内容,如果未能解决你的问题,请参考以下文章

迁移后的 Laravel 种子

无法在 Php Storm 终端中运行 php artisan migrate:refresh 命令

在 Laravel 8 中安装 Laravel/ui 的问题

Laravel源码解析--看看Lumen到底比Laravel轻在哪里

如何在 Windows 上通过 Laravel Installer 安装 Laravel?

在 Mac 上安装 Laravel 会抛出 laravel,即使在设置 PATH 后也找不到