【问题标题】:mongodb LockException error on cache clear缓存清除时的mongodb LockException错误
【发布时间】:2020-01-07 13:43:38
【问题描述】:

我最近在我的 symfony 3.4 项目中添加了"doctrine/mongodb-odm-bundle": "^3.5",但是一旦我想运行任何命令或第一次尝试调用端点,我就会得到 LockException.php line 69:

Invalid version field type integer. Version field must be int or date. 想知道是否有人可以帮助我 异常跟踪: at /home/neda/project/community/vendor/doctrine/mongodb-odm/lib/Doctrine/ODM/MongoDB/LockException.php:69 Doctrine\ODM\MongoDB\LockException::invalidVersionFieldType() at /home/neda/project/community/vendor/doctrine/mongodb-odm/lib/Doctrine/ODM/MongoDB/Mapping/ClassMetadataInfo.php:2074 Doctrine\ODM\MongoDB\Mapping\ClassMetadataInfo->setVersionMapping() at /home/neda/project/community/vendor/doctrine/mongodb-odm/lib/Doctrine/ODM/MongoDB/Mapping/ClassMetadataInfo.php:1461 Doctrine\ODM\MongoDB\Mapping\ClassMetadataInfo->mapField() at /home/neda/project/community/vendor/doctrine/mongodb-odm/lib/Doctrine/ODM/MongoDB/Mapping/ClassMetadata.php:77 Doctrine\ODM\MongoDB\Mapping\ClassMetadata->mapField() at /home/neda/project/community/vendor/doctrine/mongodb-odm/lib/Doctrine/ODM/MongoDB/Mapping/Driver/XmlDriver.php:218 Doctrine\ODM\MongoDB\Mapping\Driver\XmlDriver->addFieldMapping() at /home/neda/project/community/vendor/doctrine/mongodb-odm/lib/Doctrine/ODM/MongoDB/Mapping/Driver/XmlDriver.php:173 Doctrine\ODM\MongoDB\Mapping\Driver\XmlDriver->loadMetadataForClass() at /home/neda/project/community/vendor/doctrine/persistence/lib/Doctrine/Common/Persistence/Mapping/Driver/MappingDriverChain.php:77 Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain->loadMetadataForClass() at /home/neda/project/community/vendor/doctrine/mongodb-odm/lib/Doctrine/ODM/MongoDB/Mapping/ClassMetadataFactory.php:160 Doctrine\ODM\MongoDB\Mapping\ClassMetadataFactory->doLoadMetadata() at /home/neda/project/community/vendor/doctrine/persistence/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:304 Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->loadMetadata() at /home/neda/project/community/vendor/doctrine/persistence/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:183 Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getMetadataFor() at /home/neda/project/community/vendor/doctrine/persistence/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:89 Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getAllMetadata() at /home/neda/project/community/vendor/doctrine/mongodb-odm-bundle/CacheWarmer/ProxyCacheWarmer.php:78 Doctrine\Bundle\MongoDBBundle\CacheWarmer\ProxyCacheWarmer->getClassesForProxyGeneration() at /home/neda/project/community/vendor/doctrine/mongodb-odm-bundle/CacheWarmer/ProxyCacheWarmer.php:66 Doctrine\Bundle\MongoDBBundle\CacheWarmer\ProxyCacheWarmer->warmUp() at /home/neda/project/community/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmerAggregate.php:52 Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerAggregate->warmUp() at /home/neda/project/community/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:681 Symfony\Component\HttpKernel\Kernel->initializeContainer() at /home/neda/project/community/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:135 Symfony\Component\HttpKernel\Kernel->boot() at /home/neda/project/community/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:152 Symfony\Component\HttpKernel\Kernel->reboot() at /home/neda/project/community/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php:199 Symfony\Bundle\FrameworkBundle\Command\CacheClearCommand->warmup() at /home/neda/project/community/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php:133 Symfony\Bundle\FrameworkBundle\Command\CacheClearCommand->execute() at /home/neda/project/community/vendor/symfony/symfony/src/Symfony/Component/Console/Command/Command.php:255 Symfony\Component\Console\Command\Command->run() at /home/neda/project/community/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:981 Symfony\Component\Console\Application->doRunCommand() at /home/neda/project/community/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:86 Symfony\Bundle\FrameworkBundle\Console\Application->doRunCommand() at /home/neda/project/community/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:254 Symfony\Component\Console\Application->doRun() at /home/neda/project/community/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:74 Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /home/neda/project/community/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:147 Symfony\Component\Console\Application->run() at /home/neda/project/community/bin/console:28

【问题讨论】:

  • 请在此处粘贴该异常的堆栈跟踪 - 您应该在使用附加选项“-vvv”运行命令时看到它
  • 谢谢我将堆栈添加到我的问题中,因为这里是字符限制

标签: mongodb symfony odm


【解决方案1】:

您正在您的一个文档(映射为@Version 的字段)中使用版本控制,并且它的类型不是 int 也不是日期,如异常所述。 Intdate 字段类型是唯一可以与 @Version (docs for reference) 结合使用的字段类型

【讨论】:

猜你喜欢
  • 2021-08-03
  • 2014-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-21
  • 1970-01-01
  • 1970-01-01
  • 2016-05-09
相关资源
最近更新 更多