Laravel jordanmiguel / laravel-流行的错误

时间:2018-01-30 09:01:03

标签: laravel

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

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

Laravel popular

在Connection.php第664行:

  

SQLSTATE [42000]:语法错误或访问冲突:1071指定密钥   太长了最大密钥长度为1000个字节(SQL:alter table visits   添加唯一visits_ip_visitable_id_visitable_type_date_uniqueip,   visitable_idvisitable_typedate))

在Connection.php第458行:

  

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

2 个答案:

答案 0 :(得分: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 它不是完美的答案,但它暂时解决了你的问题。

答案 1 :(得分:0)

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

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