v1.3.10
This is release comes heavy on changes, the .NET 6 LTS
upgrade and migration to Microsoft.Data.SqlClient
driver for SqlServer. These changes promises better security and performance. And they are both contribution from our community! Enjoy this release. HTH.
Breaking changes
- Due to migration to the new Microsoft driver for SQL Sever, the Encrypted connection is now enabled by default. An error described below will ne thrown in your next migration run targeting SqlServer. To resolve this, you may need to install necessary client certificate. Alternatively, you may use self-signed certificate by adding
TrustServerCertificate=True
in the connection string or ultimately setEncrypt=False
as it is before.
ERR 2022-05-08 12:28:35Z Failed to execute run function. A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - The certificate chain was issued by an authority that is not trusted.)
https://weblog.west-wind.com/posts/2021/Dec/07/Connection-Failures-with-MicrosoftDataSqlClient-4-and-later
Take control of script execution order with _sequence.ini
If you have hundreds of scripts in a directory and prefixed the files with a sequence number to control the sequence of execution, it will be very tedious to reorganize the scripts if you need to insert another script file in the middle. In this release, you can place _sequence.ini
file in the version directories like v0.00
, in the non-version directories like _erase
or in the child directories of those directories like v0.00\setup-tables\
. This enhancement works in any directories and including all subdirectories. See snipped below and details here #254:
...
INF 2022-03-06 19:41:08Z Found 5 script files on <redacted>\yuniql_testdb_c7ff7be2\v0.00
+ test_v0_00_01.sql
+ test_v0_00_02.sql
+ test_v0_00_03.sql
+ test_v0_00_04.sql
+ test_v0_00_05.sql
INF 2022-03-06 19:41:08Z A custom execution sequence manifest is detected. \
Scripts will run as listed in the content of _sequence.ini file. Any scripts not listed in the manifest will be skipped \
and will not be committed in the version where it is placed. Skipped scripts can only be executed \
by moving them to the next version. Expected sequence:
+ test_v0_00_03.sql
+ test_v0_00_01.sql
+ test_v0_00_05.sql
+ test_v0_00_02.sql
+ test_v0_00_04.sql
Full featured container-based runner using docker run yuniql/cli
In this release, we also published new docker image yuniql/cli
. This is a stand alone runner and you can run all known actions such as check
, run
, list
, erase
and all others. Using volume attachment, you don't need to build an image before you can run migration.
https://hub.docker.com/repository/docker/yuniql/cli
https://hub.docker.com/repository/docker/yuniql/yuniql
docker run --rm -v c:/play/yuniql/samples/basic-postgresql-sample:/data \
yuniql/cli:linux-x64-1.3.10 \
run --platform postgresql -d \
-c "<your-connection-string>"
docker run --rm yuniql/cli:linux-x64-1.3.10 list --platform postgresql -d -c "<your-connection-string>"
docker run --rm -v c:/play/yuniql/samples/basic-postgresql-sample:/data \
yuniql/cli:linux-x64-1.3.10 \
erase --platform postgresql -d \
-c "<your-connection-string>" --force
New features and enhancements
- Upgraded the solution to use .NET 6 LTS version from Net Core 3.1 #223
- Migrated SqlServer driver to use
Microsoft.Data.SqlClient
#224 - Supports integrated Azure AD authentication in SqlServer #229
- Supports
docker run -v <work:space> yuniql/cli:latest
#234 - One thing, currently script order is per File Name sort, sorting this way is not intuitive. #193
- Script naming file to specify the order instead of numerical numbering #254
- Display affected record count for every batch of sql statement #257
- Supports
--trace-to-file
to support negation #260 - Supports for SQL Server 2016 based on user feedback #265
- Created pipelines for continuous testing of docker images #271
Bugs fixes
- A fatal error was encountered. The library 'libhostpolicy.so' required to execute the application was not found in '/app/' #190
- Failed connecting to Azure Sql database #199
- Directory names like v0.00.1, v0.01.1, v0.02.1, v0.03.1 , It was working upto v0.02.1 but when I deployed v0.03.1 it was showing below error. #252
- 'yuniql run' command executed through Azure Pipelines task exposes connection string if it contains an ampersand #259
- A fatal error was encountered. The library 'libhostpolicy.so' required to execute the application was not found in '/app/'. #270
Credits
Special thanks to @pmelander for the migration to Microsoft.Data.SqlClient
, @Jean-Paul76 for upgrading to .NET 6 LTS.
These are significant contrubutions and certainly one hard to get through easily. Also for everyone who filed issue tickets and asked questions, thanks for all your feedback! HTH