无法使用 sonataClassificationBundle 更新数据库 symfony 4
Posted
技术标签:
【中文标题】无法使用 sonataClassificationBundle 更新数据库 symfony 4【英文标题】:can't update database symfony 4 with sonataClassificationBundle 【发布时间】:2018-12-28 21:22:03 【问题描述】:我使用 Symfony 4.1
在配置完 SonataMediaBundle 和 SonataClassificationBundle 后安装它们。 你想执行命令
php bin/console 原则:schema:update --force
你得到了这个错误
The table with name 'shop.classification__collection' already exists.
对于所有其他分类表(如类别和标签)相同 如果您尝试将classification__collection实体中的表名更改为classification_collection
你会得到第二个类似的错误
An exception occurred while executing 'CREATE UNIQUE INDEX tag_collection ON classification__collection (slug, context):
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
【问题讨论】:
【参考方案1】:我最近遇到这个问题并找到解决方案。
问题在这里解决
https://github.com/sonata-project/SonataClassificationBundle/issues/407
你只需要通过分类删除App/Entity中创建的实体或将类重新映射到sonata.yaml和sonata_classification.yaml中的App/Entity
如果您删除了 App/Entity 中的实体,请将以下配置添加到您的 sonata.yaml 和 sonata_classification.yaml
/** sonata_classification.yaml**/
sonata_classification:
class:
tag: App\Application\Sonata\ClassificationBundle\Entity\Tag
category: App\Application\Sonata\ClassificationBundle\Entity\Category
media: App\Application\Sonata\MediaBundle\Entity\Media
collection: App\Application\Sonata\ClassificationBundle\Entity\Collection
context: App\Application\Sonata\ClassificationBundle\Entity\Context
/**奏鸣曲.yaml**/
class:
media: App\Application\Sonata\MediaBundle\Entity\Media
gallery: App\Application\Sonata\MediaBundle\Entity\Gallery
gallery_has_media: App\Application\Sonata\MediaBundle\Entity\GalleryHasMedia
category: App\Application\Sonata\ClassificationBundle\Entity\Category
【讨论】:
以上是关于无法使用 sonataClassificationBundle 更新数据库 symfony 4的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 StorageClass 配置卷 - 无法获取存储帐户的存储密钥
Worklight Studio 和本地开发,有时无法使用 Java 类,有时无法使用 HTML 文件
Ubuntu 80端口无法使用-非root用户无法使用1024以下端口