搜索

首页  >  问答  >  正文

Laravel 5.4 php artisan migrate 提示表已经存在

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

php artisan migrate

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

再次执行

php artisan migrate

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

我想大声告诉你我想大声告诉你2773 天前447

全部回复(2)我来回复

  • 给我你的怀抱

    给我你的怀抱2017-05-16 16:49:03


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

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

    或者更小...

    回复
    0
  • 大家讲道理

    大家讲道理2017-05-16 16:49:03

    这是因为 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 配置

    回复
    0
  • 取消回复