无法使用sonataClassificationBundle更新数据库symfony 4

问题描述 投票:0回答:1

即时通讯使用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

symfony sonata symfony-sonata
1个回答
0
投票

我最近遇到了这个问题并找到了解决方案。

问题在这里解决

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
© www.soinside.com 2019 - 2024. All rights reserved.