githubを使用してファイルをバージョン管理していますが、データベースもバージョン管理したいと思います。この場合は、テストのみを目的としています。
ただし、mongodbによって作成されたデータベースファイルは変更されません。ファイル変更データは数週間前です:sしたがって、githubには古いデータがあります。
データベース内の一部のデータを変更すると、mongodbがファイルに保存されない理由がよくわかりません...または少なくともファイルが何らかの形で変更されている必要があります。
MongoDBはデータファイルを事前に割り当て、徐々にいっぱいになります。おそらくそれが、変更が適切に反映されない理由です。
余談ですが、MongoDB データベースのバージョン管理に考えられるすべての方法の中で、datadir 自体を Git リポジトリに保持することが最善の方法であるかどうかはわかりません。
代替手段: 実行mongodump
するとBSON
データベースまたはコレクションの -dump が生成され、実行mongoexport
するとJSON
orが生成されCSV
ます。mongorestore
両方ともとで読み戻すことができます。ドキュメントmongoimport
を参照してください。
これらのダンプは、お気に入りのツールを使用してバージョン管理できます。個人的には、Git を使用する場合、JSON ダンプをバージョン管理します。
mongoexport --db mydatabase --collection mycollection > mycollection.json
選択したコレクションの内容を含む JSON ファイルが生成されます (必要に応じて、データベース全体をダンプできます)。
さらに、 と を追加する--csv
と--fields fieldname1,fieldname2
、素敵な CSV ファイルをダンプして、別のプログラムで読み込むことができます。