【问题标题】:Laravel: Mediable migration error Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytesLaravel: Mediable migration error 语法错误或访问冲突:1071 Specified key was too long;最大密钥长度为 1000 字节
【发布时间】:2018-06-06 04:05:55
【问题描述】:

我是 Laravel 的新手,尝试使用 Laravel 可媒体包,但它在迁移时给我一个错误 -> “[Illuminate\Database\QueryException] SQLSTATE[42000]:语法错误或访问冲突:1071 指定的键太长;最大密钥长度为 1000 字节(SQL:alter table media add unique media_disk_directory_filen ame_extension_unique(disk, directory, filename, extension))

[PDO异常] SQLSTATE[42000]:语法错误或访问冲突:1071 指定的键太长;最大密钥长度为 1000 字节"

我在 Laravel 5.4.36,其他网站的解决方法是添加这个 ->

 public function boot()
    {
        //
        Schema::defaultStringLength(191);
    }

但我的项目中已经有这个了。

有人可以帮忙吗?

【问题讨论】:

    标签: php mysql laravel


    【解决方案1】:

    您可以尝试通过在config/database.php 配置文件中更改engine 值来解决此问题:

    'engine' => 'InnoDB ROW_FORMAT=DYNAMIC',
    

    如果你想使用这个修复:

    Schema::defaultStringLength(191);
    

    确保您已在 config/app.php 注册此服务提供商

    【讨论】:

      【解决方案2】:

      和我一起工作, 在 config/database.php 里面 我替换这个 '引擎' => 空', 和 : 引擎' => 'InnoDB ROW_FORMAT=DYNAMIC',

      这个解决方案而不是对你的字符串长度设置限制。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-19
        • 1970-01-01
        • 2021-02-28
        • 2012-06-08
        • 2018-09-15
        • 1970-01-01
        • 1970-01-01
        • 2017-07-03
        相关资源
        最近更新 更多