有没有一种方法可以避免在使用Mongo存储库的应用程序启动时创建索引?

时间:2019-02-07 18:01:34

标签: javers

JaversBuilder.build()始终调用MongoRepository.ensureSchema()来为createIndex()执行jv_snapshots,即使索引已经存在。

特别是,createIndex权限被吊销了,因为此命令在前台执行时会阻止Mongo实例上的所有其他操作(不仅是数据库,例如MongoDB文档中的数据库)。

ensureSchema外部为应用程序配置Javers时,可能会调用JaversBuilder.build()。示例:

@Bean
public Javers javers() {
    MongoRepository repository = new MongoRepository(mongoClient.getDatabase(databaseName));
    Javers javers = JaversBuilder.javers().registerJaversRepository(repository).build();
    repository.ensureSchema();
    return javers;
}

建议从ensureSchema中删除对JaversBuilder.build()的调用是合适的,还是有另一种方法可以避免在非Spring Boot应用程序启动时创建索引?

0 个答案:

没有答案