Docs Menu
Docs Home
/ / /
C ドライバー

ドライバーのバージョンをアップグレードする

このページでは、 Cドライバーの新しいバージョンにアップグレードするときにアプリケーションに加える必要がある変更について説明します。

アップグレードする前に、次のアクションを実行してください。

  • 新しいCドライバーのバージョンが、アプリケーションが接続するMongoDB Server のバージョンと、アプリケーションを実行するプラットフォームと互換性があることを確認します。 バージョンの互換性情報については、 Cドライバーの互換性 ページを参照してください。

  • アプリケーションが現在使用しているドライバー バージョンと計画されているアップグレード バージョン間の重大な変更については、 重大な変更 セクションを参照してください。MongoDB Server のリリース互換性の変更の詳細については、「 Server リリースの互換性の変更 」セクションを参照してください。

Tip

将来ドライバーのバージョンをアップグレードする際にアプリケーションに必要な変更の数を最小限に抑えるには、 Stable APIを使用します。 詳しくは、「 Stable APIガイド 」を参照してください。

注意

Cドライバーは セマンティック バージョン管理 に従います。ドライバーは、どのリリースでもビルド システムまたはパッケージの互換性を中断する可能性があります。 パッチ リリースにより、誤ってAPI重大な変更が元に戻る可能性があります。

重大な変更とは、ドライバーの特定のバージョン以降の規則または動作の変更です。 このタイプの変更では、ドライバーをアップグレードする前に対処しないと、アプリケーションが正常に動作しなくなる可能性があります。

このセクションの重大な変更は、それを導入したドライバーのバージョンによって分類されます。 ドライバーのバージョンをアップグレードするときは、現在のバージョンとアップグレードのバージョン間のすべての重大な変更に対処してください。

Cドライバーは、libbsonlibmongoc の 2 つのライブラリで構成されています。このガイドのセクションでは、各ライブラリに含まれる重大な変更について説明します。

バージョン 2.0.0 へのアップグレード

Cドライバーをバージョン 1.x からバージョン 2.0.0 にアップグレードする場合、バージョン 2.0.0 までのバージョン 1.x にリストされているすべての重大な変更に対処します。

libbson の 2.0.0 リリースには、次の重大な変更が含まれています。

  • BSON_ERROR_BUFFER_SIZE マイクロの値を 504 から 503 に減らして、最終バイトを内部使用のために予約します。

  • 次の pkg-config ファイルの名前を変更します。

    • libbson-1.0: 名前を に変更 bson2

    • libbson-static-1.0: 名前を に変更 bson2-static

  • bson-1.0 CSpecパッケージを削除します。代わりに、次の例に示すように、bson を使用して、インポートするバージョンまたはバージョン範囲を指定します。

    find_package(bson 1.30...2.0)
  • インポートされた次のターゲットの名前を変更します。

    • mongo::bson_static: 名前を に変更 bson::static

    • mongo::bson_shared: 名前を に変更 bson::shared

  • BSON_DEFAULT_IMPORTED_LIBRARY_TYPE CMax オプションの値に応じて静的ライブラリまたは共有ライブラリのいずれかを指す bson::bson ターゲットを追加します。このオプションを設定せず、両方のライブラリ タイプが利用可能な場合、bson::bson は静的ライブラリを使用します。

libmongoc の 2.0 リリースには、次の重大な変更が含まれています。

  • batchSize:0 オプションを mongoc_client_watchmongoc_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_tmongoc_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: 名前を に変更 mongoc2

    • libmongoc-static-1.0: 名前を に変更 mongoc2-static

  • mongoc-1.0 CSpecパッケージを削除します。代わりに、次の例に示すように、mongoc を使用して、インポートするバージョンまたはバージョン範囲を指定します。

    find_package(mongoc 1.30...2.0)
  • インポートされた次のターゲットの名前を変更します。

    • mongo::mongoc_static: 名前を に変更 mongoc::static

    • mongo::mongoc_shared: 名前を に変更 mongoc::shared

  • MONGOC_DEFAULT_IMPORTED_LIBRARY_TYPE CMax オプションの値に応じて静的ライブラリまたは共有ライブラリのいずれかを指す mongoc::mongoc ターゲットを追加します。このオプションを設定せず、両方のライブラリ タイプが利用可能な場合、mongoc::mongoc は静的ライブラリを使用します。

libmongoc の 1.29.0 リリースには、次の重大な変更が含まれています。

  • Visual Studio 2013 のサポートを廃止します

  • 使用中の暗号化機能をサポートするために、libmongocrypt 依存関係の必要なバージョンを 1.12.0 に引き上げます

libbson の 1.28.0 リリースには、次の重大な変更が含まれています。

  • 自動 ccache の検出と使用を排除しました

  • 削除 Mongo_USE_CCACHE

libmongoc の 1.28.0 リリースには、次の重大な変更が含まれています。

  • ワイヤプロトコルの最小バージョンを 6 から 7 に引き上げます

  • 使用中の暗号化をサポートするために必要な libmongocrypt バージョンを v1.11.0 に引き上げます

libmongoc の 1.27.0 リリースには、次の重大な変更が含まれています。

  • 使用中の暗号化 をサポートするために、libmongocrypt の必要バージョンを 1.10.0 に引き上げます。これは CSpec オプション ENABLE_CLIENT_SIDE_ENCRYPTION に対応します。

libmongoc の 1.26.2 リリースには、次の重大な変更が含まれています。

  • デフォルトでは 、 はWindows上の Cyrus SASL を使用したプラグインのロードを無効にします。 再度有効にするには、CMax オプション CYRUS_PLUGIN_PATH_PREFIX を Cyrus SASL プラグインの絶対パス プレフィックスに設定します。

libmongoc の 1.24 リリースには、次の重大な変更が含まれています。

  • Queryable Encryptionを使用するにはMongoDB Serverバージョン 7.0 以降が必要

サーバー リリースの互換性の変更とは、MongoDB Server の一連のバージョンのサポートを廃止するドライバーに対する変更です。

ドライバーは、サポート終了(EOL)に達すると、MongoDB Server バージョンのサポートを終了します。

EOL 製品のMongoDBサポートの詳細については、 サポート レガシー ポリシー を参照してください。

戻る

互換性

項目一覧