How do I manage schema/mapping migrations/evolutions in Elasticsearch? : <p><a href="https://flywaydb.org" rel="noreferrer">Flyway</a> is a very convenient schema migration/evolution tool in the RDBMS world. I'm looking for something similar for ES.</p>

<p>Even though ES is different from RDBMS and I get that, the whole point of a tool like Flyway is basically doing the same schema changes in <strong>multiple environments</strong> such as 5 developer environments and staging/production environments. Even if I go with the aliasing approach described <a href="https://www.elastic.co/blog/changing-mapping-with-zero-downtime" rel="noreferrer">in a blog post</a>, I still need to do that create-new-index-then-load-data-into-it-then-update-alias cycle in <strong>each</strong> environment. What I'm looking for is an <strong>automated</strong> way of doing that.</p>

<p>I can't just ask each developer to run a particular script after they pull a particular commit. Nor do I want to remember to manually run scripts like that in staging and production environments after deploying the latest codebase. Especially when the person doing a deployment is not the one who wrote migration scripts. All that feels so 20 years ago.</p>

<p>The problem has been solved multiple times in the RDBMS world. There are multiple mature tools out there. Flyway is just one of them and is my favorite. But I can't find anything similar for ES. I googled half the Web for it. Either my googling skills are very poor or a tool like that doesn't exist.</p>

<p>What am I missing? Is there a tool I can't find? Or am I completely misunderstanding something about ES and a tool like that doesn't make sense because of something I don't yet understand?</p>
