【发布时间】:2017-05-02 13:58:41
【问题描述】:
我遇到的问题是,当我运行数据库迁移时,由于这一行和其他一些索引,当字符集为 utf8mb4 时出现错误:
$table->string('taggable_type', 255)->index();
所以,我想如果我可以通过检查使用哪个 MySQL 版本来修改 config/database.php 中用于 utf8 的字符集,则可以解决/解决问题。
我正在考虑做一个原始查询,例如:
\Illuminate\Support\Facades\DB::raw('SHOW VARIABLES LIKE "%version%"');
在config/database.php 内。现在我收到的错误是
A facade root has not been set.
我该如何解决这个问题?
是的,我已经尝试在我的 AppServiceProvider 的引导方法中设置 Schema::defaultStringLength(191);,我也尝试过 'engine' => 'InnoDB ROW_FORMAT=DYNAMIC',但我仍然收到指定的密钥太长,我认为这可能是由于 MySQL 5.5 我相信.
任何关于如何在配置文件中检查 MySQL 版本的帮助或对不同方法的提示将不胜感激。
【问题讨论】:
-
这与mysql版本无关,这个问题与mysql的innodb实现中选择的字符集和限制有关。