Laravel数据迁移“php artisan migrate 报错 Illuminate\Database\QueryException” 解决办法

今天用laravel5.6在进行数据迁移时候执行以下命令报错: (特殊字段太长报错)

php artisan migrate

 

现在utf8mb4包括存储emojis支持。如果你运行MySQL v5.7.7或者更高版本,则不需要做任何事情。

 

当你试着在一些MariaDB或者一些老版本的的MySQL上运行 migrations 命令时,你可能会碰到下面这个错误:

  Illuminate\Database\QueryException  : SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes

 

解决办法

我们可以在 AppServiceProvider.php 文件里的 boot 方法里设置一个默认值:

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Schema;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        //
        Schema::defaultStringLength(191);
    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

Laravel

    A+
发布日期:2018年06月20日 19:36:39  所属分类:Laravel框架
最后更新时间:2018-06-20 19:49:28
头像
  • ¥ 59.8元
  • 市场价:99.8元
  • ¥ 99.0元
  • 市场价:199.0元
  • ¥ 189.0元
  • 市场价:269.0元
  • ¥ 159.0元
  • 市场价:599.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: