首页 文章

Laravel jordanmiguel / laravel-流行错误[重复]

提问于
浏览
0

这个问题在这里已有答案:

我正在使用Laravel /流行,当我添加3个类并进行迁移时,它会给我带来错误 . 这里列出了3个类:

JordanMiguel\LaravelPopular\LaravelPopularServiceProvider::class,
Illuminate\Foundation\Providers\ArtisanServiceProvider::class,
Illuminate\Auth\AuthServiceProvider:class,

Laravel popular

In Connection.php line 664:

SQLSTATE [42000]:语法错误或访问冲突:1071指定密钥太长;最大密钥长度为1000字节(SQL:alter table visits add unique visits_ip_visitable_id_visitable_type_date_unique(ip,visitable_id,visitable_type,date))

In Connection.php line 458:

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

2 回答

  • 0

    AppServiceProvider 中,将此行添加到启动方法中 -

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

    在你的app \ Providers \ AppSErviceProvider.php文件中添加以下两行:

    在顶部: use Illuminate\Support\Facades\Schema ;

    在启动功能内:

    Schema::defaultStringLength(191);
    

    更新:看到你的评论不起作用后,你可能需要在你的phpmyadmin中运行下面的mysql查询(如果你有访问权限) .

    CREATE TABLE `visits` (
      `id` int(10) UNSIGNED NOT NULL,
      `ip` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
      `visitable_id` int(11) NOT NULL,
      `visitable_type` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
      `date` date NOT NULL,
      `created_at` timestamp NULL DEFAULT NULL,
      `updated_at` timestamp NULL DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
    
    --
    -- Indexes for dumped tables
    --
    
    --
    -- Indexes for table `visits`
    --
    ALTER TABLE `visits`
      ADD PRIMARY KEY (`id`),
      ADD UNIQUE KEY `visits_ip_visitable_id_visitable_type_date_unique` (`ip`,`visitable_id`,`visitable_type`,`date`),
      ADD KEY `visits_ip_index` (`ip`);
    
    --
    -- AUTO_INCREMENT for dumped tables
    --
    
    --
    -- AUTO_INCREMENT for table `visits`
    --
    ALTER TABLE `visits`
      MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;COMMIT;
    

    这将为你创建表,无需运行 php artisan migrate 它不是完美的答案,但它暂时解决了你的问题 .

相关问题