From 8ddcdfc90c0be46ca37aa9b4f83d927407f1677c Mon Sep 17 00:00:00 2001 From: reebhub Date: Tue, 20 Jan 2026 18:19:35 +0200 Subject: [PATCH 1/2] 7.2 migration section: removed outdated breaking changes, added 7.2 breaking change --- .../client-api/client-breaking-changes.mdx | 231 ------------------ .../migration/client-api/client-migration.mdx | 2 +- docs/migration/embedded/_category_.json | 4 - .../embedded/testdriver-breaking-changes.mdx | 72 ------ docs/migration/server/data-migration.mdx | 2 +- docs/migration/server/docker.mdx | 2 +- .../server/server-breaking-changes.mdx | 60 +---- 7 files changed, 13 insertions(+), 360 deletions(-) delete mode 100644 docs/migration/client-api/client-breaking-changes.mdx delete mode 100644 docs/migration/embedded/_category_.json delete mode 100644 docs/migration/embedded/testdriver-breaking-changes.mdx diff --git a/docs/migration/client-api/client-breaking-changes.mdx b/docs/migration/client-api/client-breaking-changes.mdx deleted file mode 100644 index f163f6e89a..0000000000 --- a/docs/migration/client-api/client-breaking-changes.mdx +++ /dev/null @@ -1,231 +0,0 @@ ---- -title: "Migration: Client Breaking Changes" -sidebar_label: Client Breaking Changes -sidebar_position: 0 ---- - -import Admonition from '@theme/Admonition'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -import CodeBlock from '@theme/CodeBlock'; -import LanguageSwitcher from "@site/src/components/LanguageSwitcher"; -import LanguageContent from "@site/src/components/LanguageContent"; - -# Migration: Client Breaking Changes - -The features listed on this page were available in former RavenDB versions. -In RavenDB `7.0`, they are either unavailable or their behavior is inconsistent -with their behavior in previous versions. - -* In this page: - * [Subscription creation overload modification](../../migration/client-api/client-breaking-changes.mdx#subscription-creation-overload-modification) - * [HTTP-Compression algorithm is now `Zstd` by default](../../migration/client-api/client-breaking-changes.mdx#http-compression-algorithm-is-now-zstd-by-default) - * [Bulk-insert Compression is now Enabled by default](../../migration/client-api/client-breaking-changes.mdx#bulk-insert-compression-is-now-enabled-by-default) - * [Removed irrelevant `SingleNodeBatchCommand` parameters](../../migration/client-api/client-breaking-changes.mdx#removed-irrelevant-singlenodebatchcommand-parameters) - * [Removed obsolete methods](../../migration/client-api/client-breaking-changes.mdx#removed-obsolete-methods) - * [`FromEtl` is now internal](../../migration/client-api/client-breaking-changes.mdx#frometl-is-now-internal) - - -## Subscription creation overload modification - -* In RavenDB versions earlier than **7.0**, the `Create` method overload that accepted a predicate also allowed specifying a query through `SubscriptionCreationOptions`, - which could cause errors and confusion. -* To eliminate this ambiguity, starting from **7.0**, the `Create` overload for predicate-based subscriptions now accepts `PredicateSubscriptionCreationOptions`, - which no longer includes a `Query` property. -* Refer to the [Subscription creation API overview](../../client-api/data-subscriptions/creation/api-overview.mdx) for the complete list of available `Create` method overloads. - - - - -{`// The create overload using a predicate: -// ====================================== -string Create(Expression> predicate = null, - PredicateSubscriptionCreationOptions options = null, - string database = null); - -Task CreateAsync(Expression> predicate = null, - PredicateSubscriptionCreationOptions options = null, - string database = null, - CancellationToken token = default); - -// The options class: -// ================== -public sealed class PredicateSubscriptionCreationOptions -{ - public string Name { get; set; } - public string ChangeVector { get; set; } - public string MentorNode { get; set; } - public bool Disabled { get; set; } - public bool PinToMentorNode { get; set; } - public ArchivedDataProcessingBehavior? ArchivedDataProcessingBehavior { get; set; } -} -`} - - - - -{`// The create overload using a predicate: -// ====================================== -string Create(Expression> predicate = null, - SubscriptionCreationOptions options = null, - string database = null); - -Task CreateAsync(Expression> predicate = null, - SubscriptionCreationOptions options = null, - string database = null, - CancellationToken token = default); - -// The options class: -// ================== -public class SubscriptionCreationOptions -{ - public string Name { get; set; } - public string Query { get; set; } - public string ChangeVector { get; set; } - public string MentorNode { get; set; } - public virtual bool Disabled { get; set; } - public virtual bool PinToMentorNode { get; set; } - public ArchivedDataProcessingBehavior? ArchivedDataProcessingBehavior { get; set; } -} -`} - - - - - - -## HTTP-Compression algorithm is now `Zstd` by default -From RavenDB `7.0` on, the default HTTP compression algorithm is `Zstd` (instead of `Gzip`, used in earlier versions). - - - -Clients can switch to a different HTTP-Compression algorithm using `DocumentStore`'s -[DocumentConventions.HttpCompressionAlgorithm](../../client-api/configuration/conventions.mdx#httpcompressionalgorithm) convention. - - - -{`var DocumentConventions = new DocumentConventions -\{ - // Switch HTTP compression algorithm - HttpCompressionAlgorithm = HttpCompressionAlgorithm.Gzip -\}; -`} - - - - - - -If you migrate from an earlier RavenDB version to version `7.0` or higher, -please note the [potential significance of this change](../../migration/client-api/client-migration.mdx#client-migration-to-ravendb-7x). - - - - -## Bulk-insert Compression is now Enabled by default - -Compression is now [Enabled by default for bulk-insert operations](../../client-api/bulk-insert/how-to-work-with-bulk-insert-operation.mdx#section). - - - -{`CompressionLevel DefaultCompressionLevel = CompressionLevel.Fastest; -`} - - - - - -Clients can switch to a different bulk-insert compression state using `Store`'s -[BulkInsertOptions.CompressionLevel](../../client-api/bulk-insert/how-to-work-with-bulk-insert-operation.mdx#bulkinsertoptions) option. - - - -{`using (var bulk = store.BulkInsert(new BulkInsertOptions -\{ - // Disable bulk-insert compression - CompressionLevel = CompressionLevel.NoCompression -\})); -`} - - - - - - - -## Removed irrelevant `SingleNodeBatchCommand` parameters - -We removed from [SingleNodeBatchCommand](../../client-api/commands/batches/how-to-send-multiple-commands-using-a-batch.mdx)'s -definition the parameters that are mainly used internally and kept only those relevant to the user. - - - - - -{`public SingleNodeBatchCommand - (DocumentConventions conventions, - IList commands, - BatchOptions options = null) -`} - - - - -{`public SingleNodeBatchCommand - (DocumentConventions conventions, - JsonOperationContext context, - IList commands, - BatchOptions options = null, - TransactionMode mode = TransactionMode.SingleNode) -`} - - - - - - - -## Removed obsolete methods - -The following methods are no longer used and have been removed from RavenDB `7.0`. - -* `NextPageStart` - - -{`public int NextPageStart \{ get; set; \} -`} - - - -* `GenerateEntityIdOnTheClient` - - -{`public GenerateEntityIdOnTheClient(DocumentConventions conventions, - Func generateId) -`} - - - -* `InMemoryDocumentSessionOperations.GenerateId` - - -{`protected override string GenerateId(object entity) -`} - - - -* `InMemoryDocumentSessionOperations.GetOrGenerateDocumentIdAsync` - - -{`protected async Task GetOrGenerateDocumentIdAsync(object entity) -`} - - - - - -## `FromEtl` is now internal -The `CounterBatch` class `FromEtl` property is now **internal**. -`FromEtl` is used internally to get or set a value indicating whether a counters batch originated from an ETL process. - - diff --git a/docs/migration/client-api/client-migration.mdx b/docs/migration/client-api/client-migration.mdx index 9253b0ab4a..15deb4441b 100644 --- a/docs/migration/client-api/client-migration.mdx +++ b/docs/migration/client-api/client-migration.mdx @@ -14,7 +14,7 @@ import LanguageContent from "@site/src/components/LanguageContent"; # Client Migration -* In this page: +* In this article: * [Client migration to RavenDB `7.x`](../../migration/client-api/client-migration.mdx#client-migration-to-ravendb-7x) diff --git a/docs/migration/embedded/_category_.json b/docs/migration/embedded/_category_.json deleted file mode 100644 index 0f02296b0b..0000000000 --- a/docs/migration/embedded/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "position": 2, - "label": Embedded, -} \ No newline at end of file diff --git a/docs/migration/embedded/testdriver-breaking-changes.mdx b/docs/migration/embedded/testdriver-breaking-changes.mdx deleted file mode 100644 index fabb1442ea..0000000000 --- a/docs/migration/embedded/testdriver-breaking-changes.mdx +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: "Embedded Server: TestDriver Breaking Changes" -sidebar_label: TestDriver Breaking Changes -sidebar_position: 0 ---- - -import Admonition from '@theme/Admonition'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -import CodeBlock from '@theme/CodeBlock'; -import LanguageSwitcher from "@site/src/components/LanguageSwitcher"; -import LanguageContent from "@site/src/components/LanguageContent"; - -# Embedded Server: TestDriver Breaking Changes - -The features listed on this page were available in former RavenDB versions. -In RavenDB `6.2.x`, they are either unavailable or their behavior is inconsistent -with their behavior in previous versions. - -* In this page: - * [Unlicensed TestDriver throws an exception](../../migration/embedded/testdriver-breaking-changes.mdx#unlicensed-testdriver-throws-an-exception) - - -## Unlicensed TestDriver throws an exception - -### Background: - -The [RavenDB.TestDriver](https://www.nuget.org/packages/RavenDB.TestDriver/) package -allows users to create [unit tests](../../start/test-driver.mdx) for their applications, -and run the tests using an [embedded server](../../server/embedded.mdx) included in the package. - -Like other types of RavenDB server, the features that an embedded server supports -and the resources it can use are defined by its [license](https://ravendb.net/buy). -An unlicensed server, for example, can use only 3 CPU cores, while a server -licensed using a [free developers license](https://ravendb.net/buy#developer) -can use up to 9 cores and run way faster. - -* When a RavenDB server starts, its license is validated. - * If the validation succeeds, the server will run and offer the capabilities defined - by its license. - * If the validation fails, the server may still run but limit its capabilities to those - defined by the basic [AGPL](https://ravendb.net/legal/ravendb/commercial-license-eula) - license. - - If the validation fails because the license expired, and the expiration date precedes - the server build date, the server will not start at all. - - -* A `TestServerOptions.Licensing.ThrowOnInvalidOrMissingLicense` configuration option - is available since RavenDB `5.4`, determining whether to throw a `LicenseExpiredException` - exception if TestDriver uses an unlicensed embedded server. - * If `ThrowOnInvalidOrMissingLicense` is set to **`true`** and the validation fails, - a `LicenseExpiredException` exception will be thrown to **warn TestDriver users** - that in lack of a valid license, their server's capabilities are limited and they - may therefore miss out on much of their system's potential. - * If the configuration option is set to **`false`**, **no exception will be thrown** - even if a license cannot be validated. -### The breaking change: - -Up until RavenDB version `6.0`, we set `TestServerOptions.Licensing.ThrowOnInvalidOrMissingLicense` -to **`false`** by default, so no exception would be thrown even if license validation fails. -For an exception to be thrown, users needed to change the flag to **`true`** on their own initiative. - -In version `6.2`, the default value for this configuration option **changed** to **`true`**; -a `LicenseExpiredException` exception **would** be thrown if the embedded server used by -TestDriver fails to validate a license. - -Users that prefer that no exception would be thrown if an unlicensed embedded server is -used, can set `TestServerOptions.Licensing.ThrowOnInvalidOrMissingLicense` to **`false`**. - - - diff --git a/docs/migration/server/data-migration.mdx b/docs/migration/server/data-migration.mdx index 9f83002cf1..7fad55f403 100644 --- a/docs/migration/server/data-migration.mdx +++ b/docs/migration/server/data-migration.mdx @@ -14,7 +14,7 @@ import LanguageContent from "@site/src/components/LanguageContent"; # Data Migration -* In this page: +* In this article: * [Migration to RavenDB `7.x`](../../migration/server/data-migration.mdx#migration-to-ravendb-7x) * [Migration from RavenDB 5.x to 6.x](../../migration/server/data-migration.mdx#migration-from-ravendb-5x-to-6x) * [Migration from RavenDB 4.x to RavenDB 5.x and 6.x](../../migration/server/data-migration.mdx#migration-from-ravendb-4x-to-ravendb-5x-and-6x) diff --git a/docs/migration/server/docker.mdx b/docs/migration/server/docker.mdx index 12d1c19b0d..72801bb57b 100644 --- a/docs/migration/server/docker.mdx +++ b/docs/migration/server/docker.mdx @@ -24,7 +24,7 @@ import LanguageContent from "@site/src/components/LanguageContent"; the migration procedure explained below. * Read [here](../../start/containers/image-usage.mdx) more about running a RavenDB Docker image. -* In this page: +* In this article: * [Changes Made In RavenDB `6.0` And Up](../../migration/server/docker.mdx#changes-made-in-ravendb-60-and-up) * [Migrating To `6.0` And Up](../../migration/server/docker.mdx#migrating-to-60-and-up) diff --git a/docs/migration/server/server-breaking-changes.mdx b/docs/migration/server/server-breaking-changes.mdx index a7564dfa92..80f35f4e26 100644 --- a/docs/migration/server/server-breaking-changes.mdx +++ b/docs/migration/server/server-breaking-changes.mdx @@ -5,65 +5,25 @@ sidebar_position: 2 --- import Admonition from '@theme/Admonition'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -import CodeBlock from '@theme/CodeBlock'; -import LanguageSwitcher from "@site/src/components/LanguageSwitcher"; -import LanguageContent from "@site/src/components/LanguageContent"; +import Panel from '@site/src/components/Panel'; # Migration: Server Breaking Changes The features listed on this page were available in former RavenDB versions. -In RavenDB `7.0.x`, they are either unavailable or their behavior is inconsistent -with their behavior in previous versions. +In RavenDB `7.2.x`, they are either unavailable or their behavior is inconsistent with their behavior in previous versions. -* In this page: - * [RavenDB now incorporates NLog as its logging system](../../migration/server/server-breaking-changes.mdx#ravendb-incorporates-nlog-as-its-logging-system) - * [Removed obsolete properties](../../migration/server/server-breaking-changes.mdx#removed-obsolete-properties) +* In this article: + * [Elasticsearch .Net client library version change](../../migration/server/server-breaking-changes.mdx#elasticsearch-net-client-library-version-change) -## RavenDB incorporates NLog as its logging system -RavenDB's logging system has changed; the server now incorporates the -NLog logging framework and writes all log data through it. -One of the changes that NLog brings to RavenDB is the richer set -of logging levels, visible right away through Studio's [admin-logs view](../../studio/server/debug/admin-logs.mdx). -Read more about Nlog [in the dedicated article](../../server/troubleshooting/logging.mdx). -If you migrate to RavenDB `7.x` from an earlier version, please -read the section related to NLog in the [migration page](../../migration/server/data-migration.mdx). + +- RavenDB `6.2`, `7.0` and `7.1` use `Elastic.Clients.Elasticsearch 8.x`, enabling RavenDB to use Elasticsearch server `8.x` and `9.x`. +- Starting with version `7.2`, RavenDB uses `Elastic.Clients.Elasticsearch 9.x`, compatible with Elasticsearch server `9.x` and `10.x`. -## Removed obsolete properties -The following properties are no longer in use, and have been removed from RavenDB `7.0`. - -* `ServerOptions`'s `AcceptEula` property is no longer used, - Please use `Licensing.EulaAccepted` instead. - - - -{`// Removed -c bool AcceptEula -`} - - - -* The `MemoryInfoResult` struct no longer includes these classes: - - `MemoryUsageIntervals` - - -{`// Removed -c sealed class MemoryUsageIntervals -`} - - - - `MemoryUsageLowHigh` - - -{`// Removed -c sealed class MemoryUsageLowHigh -`} - - - +If you use ETL to send data from [RavenDB to Elasticsearch](../../server/ongoing-tasks/etl/elasticsearch), please make sure that the RavenDB and Elasticsearch servers you use are compatible to prevent any transfer issues. +[See Elasticsearch compatibility table](https://github.com/elastic/elasticsearch-net?tab=readme-ov-file#compatibility) + \ No newline at end of file From 8d86eca01eabd2a6e41671236fc75e6a2a4a6328 Mon Sep 17 00:00:00 2001 From: reebhub Date: Tue, 20 Jan 2026 18:46:35 +0200 Subject: [PATCH 2/2] Added compatibility note in elasticsearch ETL page --- docs/server/ongoing-tasks/etl/elasticsearch.mdx | 9 +++++---- .../server/ongoing-tasks/etl/elasticsearch.mdx | 7 +++++-- .../server/ongoing-tasks/etl/elasticsearch.mdx | 7 +++++-- .../server/ongoing-tasks/etl/elasticsearch.mdx | 7 +++++-- 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/docs/server/ongoing-tasks/etl/elasticsearch.mdx b/docs/server/ongoing-tasks/etl/elasticsearch.mdx index 747fd1dbc5..8201c68a67 100644 --- a/docs/server/ongoing-tasks/etl/elasticsearch.mdx +++ b/docs/server/ongoing-tasks/etl/elasticsearch.mdx @@ -385,9 +385,10 @@ store.Maintenance.Send(new PutConnectionStringOperation - - ## Supported Elasticsearch Versions -RavenDB supports **Elasticsearch Server version 7 and up**. - +- RavenDB `6.2`, `7.0` and `7.1` use `Elastic.Clients.Elasticsearch 8.x`, that supports Elasticsearch server `8.x` and `9.x`. +- RavenDB `7.2` and up use `Elastic.Clients.Elasticsearch 9.x`, that supports Elasticsearch server `9.x` and `10.x`. + +Please make sure that the RavenDB and Elasticsearch servers you use are compatible to prevent any transfer issues. + \ No newline at end of file diff --git a/versioned_docs/version-6.2/server/ongoing-tasks/etl/elasticsearch.mdx b/versioned_docs/version-6.2/server/ongoing-tasks/etl/elasticsearch.mdx index 747fd1dbc5..e5d325f9b5 100644 --- a/versioned_docs/version-6.2/server/ongoing-tasks/etl/elasticsearch.mdx +++ b/versioned_docs/version-6.2/server/ongoing-tasks/etl/elasticsearch.mdx @@ -388,6 +388,9 @@ store.Maintenance.Send(new PutConnectionStringOperation +Please make sure that the RavenDB and Elasticsearch servers you use are compatible to prevent any transfer issues. + \ No newline at end of file diff --git a/versioned_docs/version-7.0/server/ongoing-tasks/etl/elasticsearch.mdx b/versioned_docs/version-7.0/server/ongoing-tasks/etl/elasticsearch.mdx index 747fd1dbc5..e5d325f9b5 100644 --- a/versioned_docs/version-7.0/server/ongoing-tasks/etl/elasticsearch.mdx +++ b/versioned_docs/version-7.0/server/ongoing-tasks/etl/elasticsearch.mdx @@ -388,6 +388,9 @@ store.Maintenance.Send(new PutConnectionStringOperation +Please make sure that the RavenDB and Elasticsearch servers you use are compatible to prevent any transfer issues. + \ No newline at end of file diff --git a/versioned_docs/version-7.1/server/ongoing-tasks/etl/elasticsearch.mdx b/versioned_docs/version-7.1/server/ongoing-tasks/etl/elasticsearch.mdx index 747fd1dbc5..e5d325f9b5 100644 --- a/versioned_docs/version-7.1/server/ongoing-tasks/etl/elasticsearch.mdx +++ b/versioned_docs/version-7.1/server/ongoing-tasks/etl/elasticsearch.mdx @@ -388,6 +388,9 @@ store.Maintenance.Send(new PutConnectionStringOperation +Please make sure that the RavenDB and Elasticsearch servers you use are compatible to prevent any transfer issues. + \ No newline at end of file