私は最近、Node.js で MongoDB を使用する方法を学んでおり、MongoDB の変更をチームの他のメンバーと (たとえば、git リポジトリを介して) 共有する方法を考えていました。
たとえば、users
MongoDB で名前が付けられたコレクションが必要で、そのコレクションにフィールドgivenName
とを含むドキュメントがいくつかあるfamilyName
場合、チームの各開発者がアプリケーションを実行すると、MongoDB が自動的にコレクションとコードに記述されているとおりのフィールド。
何らかの理由で、両方のフィールドの名前を と に変更する必要があるとしましょforename
うsurname
。
アプリケーションはしばらく実行されているため、チームのすべての開発者は、および;users
を含むドキュメントを含むコレクションのローカル コピーを持っています。実動サーバーについても同じことが言えます。givenName
familyName
私が理解していることから、古いフィールド名で使用されていたデータを「失う」ため、コード内のフィールド名を単純に変更して新しいフィールド名を使用することはできません(「失う」とは、もちろん予想どおり、古いデータがまだ存在していても、古いデータは表示されなくなります)。
そのため、関連するすべてのドキュメントのフィールドの名前を変更するには、MongoDB シェルでもコマンドを実行する必要があると思います。
しかし、これを行うと、コレクションのローカル コピーのみusers
が最新になります。
MySQL を使用する場合、必要に応じて実行する SQL ファイルで git を介してすべての変更を共有するか、利用可能な場合は PHP の Laravel フレームワークなどで移行を使用します。
MySQL で行ったのと同じことを行いchanges.js
、MongoDB シェルで実行するファイルを保持しますか?
それとも、開発者がアプリケーションを実行したときに変更が自動的に実行されるように、おそらくアプリケーション コード自体でこれを行うためのより良い方法はありますか?
つまり、チーム メンバー間で MongoDB の変更を共有するためのベスト プラクティスは何ですか?