드라이버 버전 업그레이드
개요
이 페이지에서는 새 버전의 C 운전자 로 업그레이드 때 애플리케이션 변경해야 하는 경우에 대해 설명합니다.
업그레이드하기 전에 다음 작업을 수행하세요:
새 C 운전자 버전이 애플리케이션 연결되는 MongoDB Server 버전 및 애플리케이션 이 실행되는 플랫폼과 호환되는지 확인합니다. 버전 호환성 정보는 C 운전자 호환성 페이지를 참조하세요.
애플리케이션 에서 사용 중인 현재 운전자 버전과 업그레이드 예정 버전 간의 호환성이 손상되는 변경은 호환성이 손상되는 변경 섹션에서 확인하세요. MongoDB Server 출시하다 호환성 변경 사항에 대해 자세히 학습 서버 릴리스 호환성 변경 사항 섹션을 참조하세요.
팁
향후 운전자 버전을 업그레이드할 때 애플리케이션 필요한 변경 사항의 수를 최소화하려면 Stable API 사용합니다. 자세한 학습 은 Stable API 가이드 참조하세요.
호환성이 손상되는 변경
참고
C 운전자 시맨틱 버전 관리를 따릅니다. 운전자 모든 출시하다 에서 빌드 시스템 또는 패키지 호환성을 손상시킬 수 있습니다. 패치 릴리스는 우발적인 API 호환성이 손상되는 변경을 되돌릴 수 있습니다.
호환성이 손상되는 변경은 드라이버의 특정 버전에서 시작되는 규칙 또는 동작의 변경입니다. 이러한 유형의 변경으로 인해 드라이버를 업그레이드하기 전에 해결하지 않으면 애플리케이션이 제대로 작동하지 않을 수 있습니다.
이 섹션의 호환성이 손상되는 변경은 이를 도입한 드라이버 버전별로 분류됩니다. 드라이버 버전을 업그레이드할 때 현재 버전과 업그레이드 버전 간의 호환성이 손상되는 변경을 모두 해소합니다.
C 운전자 libbson
및 libmongoc
라는 두 개의 라이브러리로 구성됩니다. 이 가이드 의 섹션에서는 각 라이브러리에 포함된 호환성이 손상되는 변경에 대해 설명합니다.
예시
버전 2.0.0로 업그레이드
C 운전자 버전 1.x에서 버전 2.0.0으로 업그레이드하는 경우, 버전 1.x부터 버전 2.0.0까지에 대해 나열된 모든 호환성이 손상되는 변경을 주소 .
버전 2.0.0
v2.0.0의 libbson 주요 변경 사항
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
CMake 패키지 제거합니다. 대신 다음 예시 와 같이bson
를 사용하고 가져올 버전 또는 버전 범위 지정합니다.find_package(bson 1.30...2.0) 가져온 다음 대상의 이름을 변경합니다.
mongo::bson_static
: 이름이 다음으로 변경됨bson::static
mongo::bson_shared
: 이름이 다음으로 변경됨bson::shared
BSON_DEFAULT_IMPORTED_LIBRARY_TYPE
CMake 옵션의 값에 따라 정적 라이브러리 또는 공유 라이브러리를 가리키는bson::bson
대상을 추가합니다. 이 옵션을 설정하다 하지 않고 두 라이브러리 유형을 모두 사용할 수 있는 경우bson::bson
는 정적 라이브러리를 사용합니다.
v2.0.0의 libmongoc 주요 변경 사항
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 *
로 변경합니다.연결 문자열 에서 새
mongoc_uri_t
객체 만들 때 적용 URI 인증 자격 증명 유효성 검사 에 다음과 같은 변경 사항을 구현합니다.모든 인증 메커니즘에서 사용자 이름이 비어 있지 않아야 합니다.
사용자 이름 및 비밀번호 사양 요구 사항의 유효성을 검사하고 지정된 인증 메커니즘 에 대한 클라이언트 오류를 반환합니다.
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
: 이름이 다음으로 변경됨mongoc2
libmongoc-static-1.0
: 이름이 다음으로 변경됨mongoc2-static
mongoc-1.0
CMake 패키지 제거합니다. 대신 다음 예시 와 같이mongoc
를 사용하고 가져올 버전 또는 버전 범위 지정합니다.find_package(mongoc 1.30...2.0) 가져온 다음 대상의 이름을 변경합니다.
mongo::mongoc_static
: 이름이 다음으로 변경됨mongoc::static
mongo::mongoc_shared
: 이름이 다음으로 변경됨mongoc::shared
MONGOC_DEFAULT_IMPORTED_LIBRARY_TYPE
CMake 옵션의 값에 따라 정적 라이브러리 또는 공유 라이브러리를 가리키는mongoc::mongoc
대상을 추가합니다. 이 옵션을 설정하다 하지 않고 두 라이브러리 유형을 모두 사용할 수 있는 경우mongoc::mongoc
는 정적 라이브러리를 사용합니다.
버전 1.29.0
v1.29.0의 libmongoc 주요 변경 사항
libmongoc
의 1.29.0 출시하다 에는 다음과 같은 호환성이 손상되는 변경이 포함됩니다.
Visual Studio 2013에 대한 지원 중단
사용 중 암호화 기능 지원 위해
libmongocrypt
종속성의 필수 버전을 1.12.0 으로 상향합니다.
버전 1.28.0
v1.28.0의 libbson 주요 변경 사항
libbson
의 1.28.0 출시하다 에는 다음과 같은 호환성이 손상되는 변경이 포함됩니다.
자동
ccache
감지 및 사용 제거제거
Mongo_USE_CCACHE
v1.28.0의 libmongoc 주요 변경 사항
libmongoc
의 1.28.0 출시하다 에는 다음과 같은 호환성이 손상되는 변경이 포함됩니다.
최소 유선 프로토콜 버전을
6
에서7
로 상향합니다.사용 중 암호화 지원 위해 필요한
libmongocrypt
버전을 v1.11.0 로 상향합니다.
버전 1.27.0
v1.27.0의 libmongoc 주요 변경 사항
libmongoc
의 1.27.0 출시하다 에는 다음과 같은 호환성이 손상되는 변경이 포함됩니다.
사용 중 암호화 지원 위해 libmongocrypt의 필수 버전을 1.10.0 으로 상향합니다. 이는 CMake 옵션
ENABLE_CLIENT_SIDE_ENCRYPTION
에 해당합니다.
버전 1.26.2
v1.26.2의 libmongoc 주요 변경 사항
libmongoc
의 1.26.2 출시하다 에는 다음과 같은 호환성이 손상되는 변경이 포함됩니다.
기본값 으로 Windows 에서 Cyrus SASL을 사용한 플러그인 로딩을 비활성화합니다. 다시 활성화하려면 CMake 옵션
CYRUS_PLUGIN_PATH_PREFIX
를 Cyrus SASL 플러그인의 절대 경로 접두사로 설정하다 .
1.24버전
v1.24의 libmongoc 주요 변경 사항
libmongoc
의 1.24 출시하다 에는 다음과 같은 호환성이 손상되는 변경이 포함됩니다.
Queryable Encryption 사용하려면 MongoDB Server 버전 7.0 이상이 필요합니다.
서버 릴리스 호환성 변경 사항
서버 출시 호환성 변경 사항은 MongoDB Server 버전 세트에 대한 지원을 중단하는 드라이버의 수정입니다.
드라이버는 MongoDB 서버 버전이 수명 종료(EOL) 시점에 도달하면 해당 버전에 대한 지원을 중단합니다.
EOL 제품에 대한 MongoDB 지원 에 대해 자세히 학습 레거시 지원 정책을 참조하세요.
버전 1.28.0 릴리스 지원 변경 사항
이 운전자 버전은 MongoDB Server 버전 3.6 및 이전 버전에 대한 지원 중단합니다. 버전 1.28.0 이상의 운전자 사용하려면 MongoDB Server 버전이 4.0 이상이어야 합니다. 이 운전자 버전은 MongoDB Server 8.0 기능을 지원합니다. MongoDB Server 배포서버 서버를 업그레이드 방법을 학습 MongoDB Server 매뉴얼의 릴리스 노트 참조하세요.