目前有一些工具可以很方便的升级线上的数据库的结构,比如ruby写的rails以及php的doctrine都有migration,不知道mongodb有没有很方便升级库结构的方法。
PHP中文网2017-04-21 10:59:11
MongoDBデータベースのアップグレードは、特別なバージョンアップがない限り、基本的にサービスを停止する必要がなく、比較的便利です。
1. データ構造が変更された場合でも、MongoDB のスキーマフリー メカニズムにより移行を回避できます
2. 新しいバージョンの新機能を使用したい場合は、レプリケーション メカニズムを使用してデータを移行する必要があります。対応するバージョンの公式リリース ノートを参照してください。通常、アップグレード中にレプリケーションを使用できるかどうかが記載されています。使用できない場合は、この新しいバージョンでレプリケーション プロトコルが変更されていることが原因である可能性があります。その場合、移行を行うためにサービスを停止する必要がある場合があります。
3. 移行のためにサービスを停止する前に、mongodump および mongorestore を使用して現在のデータを移行し、その後サービスを停止してから増分データを移行することもできます。通常、サービスは長時間停止されません。
阿神2017-04-21 10:59:11
いいえ、プログラム内での同意はご自身でのみ行うことができます。
これは、このタイプのドキュメント指向データベースの最大の問題でもあります。開発者が多かれ少なかれフィールドを挿入した場合に備えて、クライアント側で維持できるデータベース構造は 1 つだけであるため、開発時には注意が必要です。サーバーは許容されます。
さらに厄介なのは、クライアントが一意ではない場合があるため、異なるクライアントで同じデータ構造を維持する必要があり、データ構造のアップグレードに多大な不便をもたらすことです。ドキュメント指向設計はもともとデータ構造への依存を解放することを目的としていましたが、データ構造規約の欠如によって引き起こされる恣意性は解決されませんでした。