Migration: Server Breaking Changes
The features listed in 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.
MSSQL connection string requires an Encrypt property
To establish a connection with an MSSQL server via ETL, RavenDB is required
by the Microsoft.Data.SqlClient
package it utilizes (which replaces the
deprecated System.Data.SqlClient
package we've been using in previous versions)
to include in its connection string an Encrypt
property that would determine
whether to encrypt the connection or not.
RavenDB versions preceding 6.2
(down to 6.0.105
) added this property
to their connection strings without bothering their users, setting it to
Encrypt=Optional
and leaving the connection unencrypted unless users set it differently on
their own accord.
From RavenDB 6.2 on, we no longer include this property in MSSQL connection
strings and users are required to explicitly choose whether to encrypt the
connection or not.
You can go on using Encrypt=Optional and leave your connection unencrypted, or include Encrypt=Mandatory or Encrypt=Strict in your connection string and provide the server you use with a valid certificate to encrypt the connection.
Provide the connection string using code (like so) or via Studio:
SQL ETL task
Corax handling of complex JSON objects in static indexes is configurable
The behavior of RavenDB's Corax search engine while
handling complex JSON objects
in static indexes is now configurable using the Indexing.Corax.Static.ComplexFieldIndexingBehavior
configuration option (the handling of auto indexes
remains unchanged).
-
By default,
ComplexFieldIndexingBehavior
is set toThrow
, instructing the search engine to throw a NotSupportedInCoraxException exception when it encounters a complex field in a static index. -
If you prefer it, you can set
ComplexFieldIndexingBehavior
toSkip
to disable the indexing of complex fields without throwing an exception or raising a notification.
- The configuration option will apply only to new static indexes,
created after the release of RavenDB
6.2
. It will not affect older indexes. - ComplexFieldIndexingBehavior can be set for a particular index as well as for all indexes.
- Though complex fields cannot be indexed, they can still be stored and projected.
- To search by the contents of a static index's complex field, you can convert
it to a string (using
ToString
on the field value in the index definition). It is recommended, though, to index individual properties of the complex field.
Customizable identifier parts separator
Picking an identifier parts separator allows you to choose which character would be placed as a separator between ID parts when new documents are given their IDs.
This configuration is available in the database level as well as server-wide, but in
versions lower than RavenDB 6.2
its server-wide level wasn't implemented even if
a new separator was selected.
RavenDB 6.2
applies your identifier parts separator selection in the server-wide level
as well. This means that if you selected a separator in a RavenDB version lower than 6.2
and you now migrate to 6.2
, your selected separator will become active.
Please be aware of this change and check this setting before migrating.
Identity parts separator
After making this change, creating a new document with the identity prefix |
, e.g. user|
,
will apply your new separator.
New separator