即时通讯使用Symfony 4.1
在配置它们之后安装SonataMediaBundle和SonataClassificationBundle时。你想要执行命令
php bin / console doctrine: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
我最近遇到了这个问题并找到了解决方案。
问题在这里解决
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
/ ** sonata.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