迁移期间的原则错误



我已经在我的Symfony项目上创建了实体,但是当我执行迁移时,我收到了此错误:

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

我创建了这两个实体"发布"和"标签",具有ManyToMany关联:

应用\实体\发布

/**
 * @ORMManyToMany(targetEntity="AppEntityTag", inversedBy="posts")
 * @ORMJoinTable(name="post_tag",
 *      joinColumns={@ORMJoinColumn(name="post_id", referencedColumnName="id")},
 *      inverseJoinColumns={@ORMJoinColumn(name="tag_code", referencedColumnName="code")}
 *      )
 */
private $tags;

应用\实体\标记:

/**
 * @ORMManyToMany(targetEntity="AppEntityPost", mappedBy="tags")
 */
private $posts;

迁移应创建数据透视表"post_tag",post_id和tag_code作为主键。如何修复该错误?

让你尝试将以下代码添加到AppServiceProvider.php的boot((方法中:

Schema::defaultStringLength(191);

添加到AppServiceProviders.php

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

我解决了从"post_tag"表中更改密钥长度的问题

相关内容

  • 没有找到相关文章

最新更新