MS SQL Server 2008 support issue
Description
Environment
OS: Windows Server 2008
DB: MS SQL Server 2008
Activity
Nathan Voxland January 28, 2019 at 5:58 AM
Pull request https://github.com/liquibase/liquibase/pull/850 merged for 3.6.3
James Alfei December 4, 2018 at 11:56 AM
Has there been any movement on getting the PR for this approved? This is also stopping us from using Liquibase with our version of SQL Server 2008. https://github.com/liquibase/liquibase/pull/802
Adexe Rivera October 15, 2018 at 11:01 AM
I have the same problem. Liquibase 3.5.5 works, but 3.6.x fails with MS SQL Server 2008.
Jeroen Muis August 18, 2018 at 6:08 AM
Hi,
This is a pretty big showstopper for us and I see that it has been known for some months already The (simple, straight forward) pull request is available as well, so what are the plans on this topic? Shouldn't it be quickly released into the 3.6.x stable branch?
We know have to patch our builds with a custom build for each and every deployment as we have some of our customers sitting on a (supported) mssql 2008 edition.
Thanks very much,
Jeroen
Michael Krinninger August 7, 2018 at 11:48 AM
we have the same problem. Liquibase 3.6.1 works, but 3.6.2 fails with MS SQL Server 2008R2.
@Override public boolean isCorrectDatabaseImplementation(DatabaseConnection conn) throws DatabaseException { String databaseProductName = conn.getDatabaseProductName(); int majorVersion = conn.getDatabaseMajorVersion(); boolean isRealSqlServerConnection = PRODUCT_NAME.equalsIgnoreCase(databaseProductName) || "SQLOLEDB".equalsIgnoreCase(databaseProductName); if (isRealSqlServerConnection && (majorVersion <= MSSQL_SERVER_VERSIONS.MSSQL2008)) { LogService.getLog(getClass()).warning( LogType.LOG, String.format("Your SQL Server major version (%d) seems to indicate that your " + "software is older than SQL Server 2008. Unfortunately, this is not supported, and this " + "connection cannot be used.", majorVersion)); return false; } return isRealSqlServerConnection; }
Please review the above method. The reason for dropping support for older SQL Server versions was driven by the introduction of varchar(max)/nvarchar(max) data types. Since these data types wore introduced in SQL Server 2008 (version 10) support should be maintained. However the statement "if (isRealSqlServerConnection && (majorVersion <= MSSQL_SERVER_VERSIONS.MSSQL2008))" seems to incorrectly drop support for 2008.