Php artisan migrate fails Laravel

9 浏览
0 Comments

Php artisan migrate fails Laravel

我遇到了以下错误。有人知道是为什么吗?\n

\nphp artisan migrate\n

\n

 SQLSTATE[42000]: 语法错误或访问违规:1071 指定的键过长;最大键长度为767字节(SQL: alter table `users` add unique `users_email_unique`(`email`) )

\ncreate_users_table.php\n

Schema::create('users', function (Blueprint $table) {
    $table->increments('id'); // 自增ID
    $table->string('name',255); // 名字字段,最大长度为255
    $table->string('email',255)->unique(); // 邮箱字段,最大长度为255,唯一
    $table->string('password',255); // 密码字段,最大长度为255
    $table->rememberToken(); // 记住登录状态的token
    $table->timestamps(); // 创建时间和更新时间
});

0
0 Comments

PHP Artisan Migrate失败 Laravel

当在Laravel中使用PHP Artisan Migrate命令时,可能会遇到migrate失败的问题。这个问题的出现通常是由于数据库迁移文件中的字符串长度限制引起的。为了解决这个问题,可以按照以下步骤进行操作:

1. 打开AppServiceProvider.php文件,该文件位于app/Providers/AppServiceProvider.php。

use Illuminate\Support\Facades\Schema;
public function boot()
{
     Schema::defaultStringLength(191);
}

2. 在AppServiceProvider.php文件中,添加上述代码。这段代码的作用是设置默认的字符串长度为191。

3. 在终端上运行以下命令来更新Composer:

composer update

4. 在终端上运行以下命令来清除缓存:

php artisan cache:clear

5. 尝试再次运行数据库迁移命令,这样就可以解决问题了。

通过以上步骤,您可以解决PHP Artisan Migrate失败的问题。

0
0 Comments

问题出现的原因是因为在config/database.php文件的mysql部分,字符集和校对规则的设置有误。解决方法是将'charset' => 'utf8mb4'和'collation' => 'utf8mb4_unicode_ci'替换为'charset' => 'utf8'和'collation' => 'utf8_unicode_ci'。现在出现的错误信息是有意义的,我之前忽略了这个设置。我手动创建了我的数据库,并且确实使用了校对规则"utf8_unicode_ci"。

0
0 Comments

问题:Php artisan migrate 失败 Laravel

原因:原因是数据库字段长度限制导致的,需要设置默认字符串长度。

解决方法:编辑AppServiceProvider.php文件,并在boot方法中设置默认字符串长度为191,然后手动删除数据库,执行composer dump-autoload和php artisan migrate命令。

具体步骤如下:

1. 打开AppServiceProvider.php文件,路径为App\Providers\AppServiceProvider。

2. 在文件中添加以下代码:

use Illuminate\Support\Facades\Schema;
public function boot()
{
    Schema::defaultStringLength(191);
}

3. 保存文件。

4. 手动删除数据库。

5. 执行composer dump-autoload命令。

6. 执行php artisan migrate命令。

通过以上步骤,应该可以解决Php artisan migrate失败的问题。

0