我希望我的问题有道理,因为我对我应该做的事情感到有些困惑 .
我克隆了一个laravel项目,该文件夹中已有大约20个迁移 . 根据我的理解,迁移是表格?
我创建了一个空的mysql数据库,链接到这个laravel项目,该项目目前有一个 migrations
表和一个 users
表 .
我想我应该做一些事情来生成在新数据库的迁移文件夹中编写的表,但我不知道如何 .
到目前为止,我使用了命令 php artisan migrate
,它生成了一个 migrations
和 users
表,并提出了这些错误 .
[Illuminate \ Database \ QueryException] SQLSTATE [42000]:语法错误或访问冲突:1071指定密钥长;最大密钥长度为1000字节(SQL:alter table users添加唯一users_email_unique(email))
[Doctrine \ DBAL \ Driver \ PDOException] SQLSTATE [42000]:语法错误或访问冲突:1071指定的密钥长;最大密钥长度为1000字节
[PDOException] SQLSTATE [42000]:语法错误或访问冲突:1071指定密钥长;最大密钥长度为1000字节
1 回答
对于运行MariaDB或旧版MySQL的用户,在尝试运行迁移时可能会遇到此错误:
[Illuminate \ Database \ QueryException] SQLSTATE [42000]:语法错误或访问冲突:1071指定密钥太长;最大密钥长度为767字节(SQL:alter table users添加唯一users_email_unique(email))
[PDOException] SQLSTATE [42000]:语法错误或访问冲突:1071指定密钥太长;最大密钥长度为767字节
正如迁移指南中所述,为了解决这个问题,您只需编辑AppServiceProvider.php文件并在boot方法中设置默认字符串长度: