Skip to content

v1.3.10

Compare
Choose a tag to compare
@rdagumampan rdagumampan released this 23 May 15:35
612ac35

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 set Encrypt=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

image

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