そのような名前変更移行を実行するために、liquibase と mongo を使用しています。
<ext:runCommand>
<ext:command><![CDATA[
{
renameCollection: "XXX.foo",
to: "XXX.bar"
}
]]></ext:command>
</ext:runCommand>
名前の変更は既存の DB の範囲内で行われるため、データベース間の移行は私のユースケースには関係ありません。私の問題は、XXX を事前に知っていることです。私のリキベースの移行は、複数の環境で実行することを目的としており、それぞれが独自のバージョンの XXX を使用しています。
また、liquibase は私を runCommand/adminCommand セマンティクスに制限しており、それらの仕様では、私が持つことができない完全な名前空間を提供する必要があると明確に述べています。
もちろん、環境ごとに 1 つずつ、複数の liquibase 変更セットを作成し、それぞれに適切な名前空間をハードコーディングすることもできます。しかし、そのオプションはあまりうまくスケーリングできないため、避けたいと思います。
名前空間にとらわれない方法で、mongo コレクションの名前を (runCommand/adminCommand セマンティクスを使用して) 変更する方法はありますか?