我对ES非常陌生。我一直在尝试搜索数据库迁移工具,但找不到。我想知道是否有人可以帮助我指出正确的方向。
我将使用Elasticsearch作为项目中的主要数据存储。我想对我在项目中开发新模块时运行的所有映射和配置更改/数据导入/数据升级脚本进行版本控制。
过去,我使用过数据库版本控制工具,例如Flyway或Liquibase。
我可以在ES中使用任何框架/脚本或方法来实现类似目的吗?
有没有人有使用脚本手动执行此操作的经验,并且至少运行迁移脚本(至少是升级脚本)。
提前致谢!
从这种观点/需求来看,ES具有巨大的局限性:
在您的问题中这意味着什么?基本上,您不能拥有用于ES的经典迁移工具。以下是使您使用ES的工作更轻松的方法:
使用严格的映射("dynamic": "strict"和/或index.mapper.dynamic: false,看看映射文档)。这将保护您的索引/类型免受
"dynamic": "strict"
index.mapper.dynamic: false
您可以利用索引别名进行迁移
所以,一点点经验。对我来说,目前合理的流程是:
news
news_index_{revision}_{date_created}
每次部署代码时,您
尝试放置模型(类型)映射。如果没有错误,则表示您已经
所有这些实际上意味着您可以很好地使用已有的映射/数据,只需像往常一样处理数据
name_{revision}_{date}
bulk
这是经过生产测试的解决方案。关于这种方法的警告:
总结一下:
river-*