Laravel 5.4 php artisan migrate 提示表已经存在
我想大声告诉你
我想大声告诉你 2017-05-16 16:47:03
[PHP讨论组]

在数据库没有任何表的情况下执行

php artisan migrate

执行后数据库里面只会存在连个表:migrations、users

再次执行

php artisan migrate

数据库里不会有任何的新增。求解。

我想大声告诉你
我想大声告诉你

全部回复(2)
给我你的怀抱


索引的长度超过了mysql的限制,在migrate之前,设置

$table->string('email' , 32)->index();
$table->string('token' , 128)->index();

或者更小...

大家讲道理

这是因为 5.4 默认使用了utf8mb4 字符集, 在 MySQL / MariaDB .

https://laravel.com/docs/5.4/migrations#indexes

只要安装文档中的示例修改就好了.

在 AppServiceProvider.php, boot方法中, 调用 Schema::defaultStringLength 方法


// AppServiceProvider.php


use Illuminate\Support\Facades\Schema;

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

顺便, 你也可以开启数据库的 innodb_large_prefix 配置

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号