頂部導航開始 -->

Laravel執行數據遷移的時候報錯

laravel 5.4 改變了默認的數據庫字符集,現在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 767 bytes (SQL: alter table users add unique users_email_unique(email))

[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

自學php博客

需要找到/app/Providers/AppServiceProvider.php文件,在改文件頂部引入命名空間

use Illuminate\Support\Facades\Schema;

然后在boot方法中,加入Schema::defaultStringLength(191);設置一個默認值即可解決此問題。

代碼如下:


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()

    {

        //

    }

}

官網原文參考地址:https://laravel.com/docs/master/migrations#creating-indexes

自學php博客
請先登陸后發表評論
  • 最新評論
  • 總共0條評論
  • ? 2014-2016 zixuephp.cn 版權所有
  • ICP證:皖ICP備16012107號
  • 聯系郵箱:[email protected]
  • 交流請加微信:weibobf2899 或掃下方二維碼
双大床红利扑克1手APP 做数学老师怎么赚钱 不投入的网络赚钱项目 天天开心斗地主赚钱 十元淘金怎么赚钱 干什么能挣钱快6种方法来快速赚钱 手机微商怎么赚钱是真的吗 开药房 赚钱吗 69开眼抓鬼赚钱吗 带孩子可以干什么赚钱 不赚钱把健康分享给顾客也是种美德 卖咸杂赚钱吗 青岛夜店赚钱吗 面相赚钱的能力 小说出版了赚钱吗 学生怎么打工赚钱 做服装地摊生意赚钱吗