条令:mongodb:fixture:load删除创建的索引
我在Mongodb ODM中使用Symfony 2,并尝试创建一些索引,这些索引与我已经创建并尝试加载的fixture一起工作条令:mongodb:fixture:load删除创建的索引,mongodb,indexing,fixtures,doctrine-mongodb,Mongodb,Indexing,Fixtures,Doctrine Mongodb,我在Mongodb ODM中使用Symfony 2,并尝试创建一些索引,这些索引与我已经创建并尝试加载的fixture一起工作 php -f app/console doctrine:mongodb:fixtures:load 当我在文档上创建索引时,加载fixture失败 [Doctrine\ODM\MongoDB\MongoDBException]
php -f app/console doctrine:mongodb:fixtures:load
当我在文档上创建索引时,加载fixture失败
[Doctrine\ODM\MongoDB\MongoDBException]
Cannot execute unindexed queries on Updatemi\LibraryBundle\Document\UpdateTerm. Unindexed fields: update
ODM本身不生成索引吗 经过一些研究,我找到了解决这个问题的办法 条令不会自动创建索引,在删除索引后,您必须使用命令自己创建索引
sf doctrine:mongodb:schema:create --index
这并不能解决装置的问题,因为它们在执行代码之前会删除所有内容。
但是这个问题也有解决办法
在fixtures文件的开头,添加一行,为您重新生成索引
$dm = $this->container->get('doctrine.odm.mongodb.document_manager');
$dm->getSchemaManager()->ensureIndexes();
还有一个pull请求在fixtures库上,以避免在fixture加载时删除索引,因此希望不再需要此修复