Overview
このページでは、 Cドライバーの新しいバージョンにアップグレードするときにアプリケーションに加える必要がある変更について説明します。
アップグレードする前に、次のアクションを実行してください。
Ensure the new C driver version is compatible with the MongoDB Server versions your application connects to and the platform your application runs on. For version compatibility information, see the C driver Compatibility page.
Address any breaking changes between the current driver version your application uses and your planned upgrade version in the Breaking Changes section. To learn more about MongoDB Server release compatibility changes, see the Server Release Compatibility Changes section.
Tip
将来ドライバーのバージョンをアップグレードする際にアプリケーションに必要な変更の数を最小限に抑えるには、 Stable APIを使用します。 詳しくは、「 Stable APIガイド 」を参照してください。
重大な変更
注意
Cドライバーは セマンティック バージョン管理 に従います。ドライバーは、どのリリースでもビルド システムまたはパッケージの互換性を中断する可能性があります。パッチ リリースにより、誤ってAPI重大な変更が元に戻る可能性があります。
重大な変更とは、ドライバーの特定のバージョン以降の規則または動作の変更です。 このタイプの変更では、ドライバーをアップグレードする前に対処しないと、アプリケーションが正常に動作しなくなる可能性があります。
このセクションの重大な変更は、それを導入したドライバーのバージョンによって分類されます。 ドライバーのバージョンをアップグレードするときは、現在のバージョンとアップグレードのバージョン間のすべての重大な変更に対処してください。
Cドライバーは、libbson と libmongoc の 2 つのライブラリで構成されています。このガイドのセクションでは、各ライブラリに含まれる重大な変更について説明します。
例
バージョン 2.0.0 へのアップグレード
Cドライバーをバージョン 1.x からバージョン 2.0.0 にアップグレードする場合、バージョン 2.0.0 までのバージョン 1.x にリストされているすべての重大な変更に対処します。
バージョン2.2.0
libbson 重大な変更
libbson の 2.2.0 リリースには、次の重大な変更が含まれています。
- Visual Studio 2015 のサポートを除きます。サポートされる最小バージョンは Visual Studio 2017 です。
libmongoc 重大な変更
libmongoc の 2.2.0 リリースには、次の重大な変更が含まれています。
- Visual Studio 2015 のサポートを除きます。サポートされる最小バージョンは Visual Studio 2017 です。
バージョン2.1.0
libbson 重大な変更
libbson の 2.1.0 リリースには、次の重大な変更が含まれています。
Debian 9 およびDebian 10 のサポートを廃止します。
CMaxプロジェクトは、
4.0の CSpec ポリシーの最大バージョンを設定します。以前のドライバー バージョンでは、ポリシー最大バージョンは設定されません。CSpec バージョンと CSpec 構成オプションによっては、ビルド システムに重大な変更が生じる可能性があります。
libmongoc 重大な変更
libmongoc の 2.1.0 リリースには、次の重大な変更が含まれています。
Debian 9 およびDebian 10 のサポートを廃止します。
CMaxプロジェクトは、
4.0の CSpec ポリシーの最大バージョンを設定します。以前のドライバー バージョンでは、ポリシー最大バージョンは設定されません。CSpec バージョンと CSpec 構成オプションによっては、ビルド システムに重大な変更が生じる可能性があります。
バージョン2.0.0
libbson v2.0.0 での重大な変更
libbson の 2.0.0 リリースには、次の重大な変更が含まれています。
BSON_ERROR_BUFFER_SIZEマイクロの値を504から503に減らして、最終バイトを内部使用のために予約します。次の
pkg-configファイルの名前を変更します。libbson-1.0: 名前を に変更bson2libbson-static-1.0: 名前を に変更bson2-static
bson-1.0CSpecパッケージを削除します。代わりに、次の例に示すように、bsonを使用して、インポートするバージョンまたはバージョン範囲を指定します。find_package(bson 1.30...2.0) インポートされた次のターゲットの名前を変更します。
mongo::bson_static: 名前を に変更bson::staticmongo::bson_shared: 名前を に変更bson::shared
BSON_DEFAULT_IMPORTED_LIBRARY_TYPECMax オプションの値に応じて静的ライブラリまたは共有ライブラリのいずれかを指すbson::bsonターゲットを追加します。このオプションを設定せず、両方のライブラリ タイプが利用可能な場合、bson::bsonは静的ライブラリを使用します。
libmongoc v2.0.0 での重大な変更
libmongoc の 2.0 リリースには、次の重大な変更が含まれています。
batchSize:0オプションをmongoc_client_watch、mongoc_database_watch、またはmongoc_collection_watchに渡すと、aggregateコマンドはこのオプションを無視せず、適用します。bson_oid_init_sequenceを削除します。代わりに、bson_oid_initを使用してください。mongoc_server_description_hostの戻り値の型をmongoc_host_list_t *からconst mongoc_host_list_t *に変更します。URI認証情報の検証に次の変更を実装します。これは接続文字列から新しい
mongoc_uri_tオブジェクトを作成するときに適用されます。すべての認証メカニズムでユーザー名が空でないことを要求します。
ユーザー名とパスワードの指定要件を検証し、指定された認証メカニズムのクライアントエラーを返します。
MONGODB-AWS認証メカニズムの場合、authSource値はデフォルトで$externalになります。authMechanism値を検証し、無効な値についてはクライアントエラーを返します。authMechanismProperties値を検証し、指定された認証メカニズムの無効なプロパティについてのクライアントエラーを返します。authMechanismProperties値内のコロン(:)文字を正しく解析します。例、authMechanismProperties=A:B,C:D:E,F:Gを設定すると、ドライバーは値を{'A': 'B', 'C': 'D:E,F:G'}として解析します。これは{'A': 'B': 'C': 'D:E', 'F': 'G'}として解析されるようになりました。
同じ
mongoc_bulk_operation_tでmongoc_bulk_operation_executeを繰り返し呼び出すと、エラーが生成されます。パブリックAPIの関数宣言に
__cdecl呼び出し規則を一貫して適用します。mongoc_client_set_ssl_optsはプールされたmongoc_client_tを無視し、エラーをログに記録します。クライアントを生成する前に、mongoc_client_pool_set_ssl_optsを使用してmongoc_client_pool_tで TLS オプションを設定します。mongoc_client_set_ssl_stream_initiatorはプールされたmongoc_client_tを無視し、エラーをログに記録します。次の
pkg-configファイルの名前を変更します。libmongoc-1.0: 名前を に変更mongoc2libmongoc-static-1.0: 名前を に変更mongoc2-static
mongoc-1.0CSpecパッケージを削除します。代わりに、次の例に示すように、mongocを使用して、インポートするバージョンまたはバージョン範囲を指定します。find_package(mongoc 1.30...2.0) インポートされた次のターゲットの名前を変更します。
mongo::mongoc_static: 名前を に変更mongoc::staticmongo::mongoc_shared: 名前を に変更mongoc::shared
MONGOC_DEFAULT_IMPORTED_LIBRARY_TYPECMax オプションの値に応じて静的ライブラリまたは共有ライブラリのいずれかを指すmongoc::mongocターゲットを追加します。このオプションを設定せず、両方のライブラリ タイプが利用可能な場合、mongoc::mongocは静的ライブラリを使用します。
バージョン1.29.0
libmongoc v1.29.0 での重大な変更
libmongoc の 1.29.0 リリースには、次の重大な変更が含まれています。
Visual Studio 2013 のサポートを廃止します
使用中の暗号化機能をサポートするために、
libmongocrypt依存関係の必要なバージョンを 1.12.0 に引き上げます
バージョン1.28.0
libbson v1.28.0 での重大な変更
libbson の 1.28.0 リリースには、次の重大な変更が含まれています。
自動
ccacheの検出と使用を排除しました削除
Mongo_USE_CCACHE
libmongoc v1.28.0 での重大な変更
libmongoc の 1.28.0 リリースには、次の重大な変更が含まれています。
ワイヤプロトコルの最小バージョンを
6から7に引き上げます使用中の暗号化をサポートするために必要な
libmongocryptバージョンを v1.11.0 に引き上げます
バージョン1.27.0
libmongoc v1.27.0 での重大な変更
libmongoc の 1.27.0 リリースには、次の重大な変更が含まれています。
- 使用中の暗号化 をサポートするために、libmongocrypt の必要バージョンを 1.10.0 に引き上げます。これは CSpec オプション
ENABLE_CLIENT_SIDE_ENCRYPTIONに対応します。
バージョン1.26.2
libmongoc v1.26.2 での重大な変更
libmongoc の 1.26.2 リリースには、次の重大な変更が含まれています。
- デフォルトでは 、 はWindows上の Cyrus SASL を使用したプラグインのロードを無効にします。 再度有効にするには、CMax オプション
CYRUS_PLUGIN_PATH_PREFIXを Cyrus SASL プラグインの絶対パス プレフィックスに設定します。
バージョン1.24
v1.24 でのlibmongoc 重大な変更
libmongoc の 1.24 リリースには、次の重大な変更が含まれています。
- Queryable Encryptionを使用するにはMongoDB Serverバージョン 7.0 以降が必要
サーバー リリースの互換性の変更
サーバー リリースの互換性の変更とは、MongoDB Server の一連のバージョンのサポートを廃止するドライバーに対する変更です。
ドライバーは、サポート終了(EOL)に達すると、MongoDB Server バージョンのサポートを終了します。
To learn more about MongoDB support for EOL products, see the Legacy Support Policy.