diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 04f792f..8dfb9cc 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -117,6 +117,7 @@ jobs: docker pull postgres:15-alpine docker pull postgres:16-alpine docker pull postgres:17-alpine + docker pull postgres:18-alpine - name: docker start containers shell: bash run: | @@ -125,6 +126,7 @@ jobs: docker run --rm --name postgres-15 -p 26010:5432 -e POSTGRES_PASSWORD=test1234 -d postgres:15-alpine docker run --rm --name postgres-16 -p 26011:5432 -e POSTGRES_PASSWORD=test1234 -d postgres:16-alpine docker run --rm --name postgres-17 -p 26012:5432 -e POSTGRES_PASSWORD=test1234 -d postgres:17-alpine + docker run --rm --name postgres-18 -p 26013:5432 -e POSTGRES_PASSWORD=test1234 -d postgres:18-alpine sleep 60s - name: Test run: dotnet test SQLSchemaCompare.Test --no-build --configuration Release --logger trx --filter "Category=IntegrationTest&Category=PostgreSQL" @@ -161,6 +163,7 @@ jobs: docker pull mariadb:10.11 docker pull mariadb:11.4 docker pull mariadb:11.8 + docker pull mariadb:12 - name: docker start containers shell: bash run: | @@ -168,6 +171,7 @@ jobs: docker run --rm --name mariadb-10.11 -p 29013:3306 -e MYSQL_USER=admin -e MYSQL_PASSWORD=test1234 -e MYSQL_ROOT_PASSWORD=test1234 -d mariadb:10.11 docker run --rm --name mariadb-11.4 -p 29018:3306 -e MYSQL_USER=admin -e MYSQL_PASSWORD=test1234 -e MYSQL_ROOT_PASSWORD=test1234 -d mariadb:11.4 docker run --rm --name mariadb-11.8 -p 29022:3306 -e MYSQL_USER=admin -e MYSQL_PASSWORD=test1234 -e MYSQL_ROOT_PASSWORD=test1234 -d mariadb:11.8 + docker run --rm --name mariadb-12 -p 29023:3306 -e MYSQL_USER=admin -e MYSQL_PASSWORD=test1234 -e MYSQL_ROOT_PASSWORD=test1234 -d mariadb:12 sleep 60s - name: Test run: dotnet test SQLSchemaCompare.Test --no-build --configuration Release --logger trx --filter "Category=IntegrationTest&Category=MariaDB" diff --git a/SQLSchemaCompare.Infrastructure/DatabaseProviders/MariaDbDatabaseProvider.cs b/SQLSchemaCompare.Infrastructure/DatabaseProviders/MariaDbDatabaseProvider.cs index 812c7b5..136b463 100644 --- a/SQLSchemaCompare.Infrastructure/DatabaseProviders/MariaDbDatabaseProvider.cs +++ b/SQLSchemaCompare.Infrastructure/DatabaseProviders/MariaDbDatabaseProvider.cs @@ -31,7 +31,7 @@ protected override IEnumerable GetTables(MySqlDatabaseContext cont query.AppendLine(" t.UPDATE_TIME as ModifyDate,"); query.AppendLine(" c.CHARACTER_SET_NAME as TableCharacterSet"); query.AppendLine("FROM INFORMATION_SCHEMA.TABLES t"); - query.AppendLine(this.CurrentServerVersion.Major >= 11 && this.CurrentServerVersion.Minor >= 4 + query.AppendLine(this.CurrentServerVersion.Major > 11 || (this.CurrentServerVersion.Major == 11 && this.CurrentServerVersion.Minor >= 4) ? "INNER JOIN INFORMATION_SCHEMA.COLLATION_CHARACTER_SET_APPLICABILITY c ON c.full_collation_name = t.table_collation" : "INNER JOIN INFORMATION_SCHEMA.COLLATION_CHARACTER_SET_APPLICABILITY c ON c.collation_name = t.table_collation"); query.AppendLine($"WHERE t.TABLE_TYPE = 'BASE TABLE' and t.TABLE_SCHEMA = '{context.DatabaseName}'"); diff --git a/SQLSchemaCompare.Test/DatabaseFixtureMariaDb.cs b/SQLSchemaCompare.Test/DatabaseFixtureMariaDb.cs index 739f4ae..c9ae057 100644 --- a/SQLSchemaCompare.Test/DatabaseFixtureMariaDb.cs +++ b/SQLSchemaCompare.Test/DatabaseFixtureMariaDb.cs @@ -22,23 +22,24 @@ public static IEnumerable ServerPorts /*serverPorts.Add(new object[] { (ushort)29003 });*/ // Version 10.1 (EOL October 2020) /*serverPorts.Add(new object[] { (ushort)29004 });*/ // Version 10.2 (EOL May 2022) /*serverPorts.Add(new object[] { (ushort)29005 });*/ // Version 10.3 (EOL May 2023) - /*serverPorts.Add(new object[] { (ushort)29006 }); // Version 10.4 (EOL June 2024)*/ - /*serverPorts.Add(new object[] { (ushort)29007 }); // Version 10.5 (EOL June 2025)*/ + /*serverPorts.Add(new object[] { (ushort)29006 });*/ // Version 10.4 (EOL June 2024) + /*serverPorts.Add(new object[] { (ushort)29007 });*/ // Version 10.5 (EOL June 2025) serverPorts.Add(new object[] { (ushort)29008 }); // Version 10.6 (EOL July 2026) /*serverPorts.Add(new object[] { (ushort)29009 });*/ // Version 10.7 (EOL February 2023) /*serverPorts.Add(new object[] { (ushort)29010 });*/ // Version 10.8 (EOL May 2023) /*serverPorts.Add(new object[] { (ushort)29011 });*/ // Version 10.9 (EOL August 2023) /*serverPorts.Add(new object[] { (ushort)29012 });*/ // Version 10.10 (EOL November 2023) serverPorts.Add(new object[] { (ushort)29013 }); // Version 10.11 (EOL February 2028) - /*serverPorts.Add(new object[] { (ushort)29014 }); // Version 11.0 (EOL June 2024)*/ - /*serverPorts.Add(new object[] { (ushort)29015 }); // Version 11.1 (EOL August 2024)*/ - /*serverPorts.Add(new object[] { (ushort)29016 }); // Version 11.2 (EOL November 2024)*/ - /*serverPorts.Add(new object[] { (ushort)29017 }); // Version 11.3 (EOL May 2024)*/ + /*serverPorts.Add(new object[] { (ushort)29014 });*/ // Version 11.0 (EOL June 2024) + /*serverPorts.Add(new object[] { (ushort)29015 });*/ // Version 11.1 (EOL August 2024) + /*serverPorts.Add(new object[] { (ushort)29016 });*/ // Version 11.2 (EOL November 2024) + /*serverPorts.Add(new object[] { (ushort)29017 });*/ // Version 11.3 (EOL May 2024) serverPorts.Add(new object[] { (ushort)29018 }); // Version 11.4 (EOL May 2029) - /*serverPorts.Add(new object[] { (ushort)29019 }); // Version 11.5 (EOL November 2024)*/ - /*serverPorts.Add(new object[] { (ushort)29020 }); // Version 11.6 (EOL February 2025)*/ - /*serverPorts.Add(new object[] { (ushort)29021 }); // Version 11.7 (EOL May 2025)*/ + /*serverPorts.Add(new object[] { (ushort)29019 });*/ // Version 11.5 (EOL November 2024) + /*serverPorts.Add(new object[] { (ushort)29020 });*/ // Version 11.6 (EOL February 2025) + /*serverPorts.Add(new object[] { (ushort)29021 });*/ // Version 11.7 (EOL May 2025) serverPorts.Add(new object[] { (ushort)29022 }); // Version 11.8 (EOL October 2033) + serverPorts.Add(new object[] { (ushort)29023 }); // Version 12 (Preview) } else { diff --git a/SQLSchemaCompare.Test/DatabaseFixtureMySql.cs b/SQLSchemaCompare.Test/DatabaseFixtureMySql.cs index 17dbea0..7d67bb6 100644 --- a/SQLSchemaCompare.Test/DatabaseFixtureMySql.cs +++ b/SQLSchemaCompare.Test/DatabaseFixtureMySql.cs @@ -22,13 +22,13 @@ public static IEnumerable ServerPorts /*serverPorts.Add(new object[] { (ushort)27003 });*/ // Version 5.7 (EOL October 2023) serverPorts.Add(new object[] { (ushort)27004 }); // Version 8.0 (EOL April 2026) /*serverPorts.Add(new object[] { (ushort)27005 });*/ // Version 8.1 (EOL October 2023) - /*serverPorts.Add(new object[] { (ushort)27006 }); // Version 8.2 (EOL December 2023)*/ - /*serverPorts.Add(new object[] { (ushort)27007 }); // Version 8.3 (EOL April 2024)*/ + /*serverPorts.Add(new object[] { (ushort)27006 });*/ // Version 8.2 (EOL December 2023) + /*serverPorts.Add(new object[] { (ushort)27007 });*/ // Version 8.3 (EOL April 2024) serverPorts.Add(new object[] { (ushort)27008 }); // Version 8.4 (EOL April 2032) - /*serverPorts.Add(new object[] { (ushort)27009 }); // Version 9.0 (EOL October 2024)*/ - /*serverPorts.Add(new object[] { (ushort)27010 }); // Version 9.1 (EOL January 2025)*/ - /*serverPorts.Add(new object[] { (ushort)27011 }); // Version 9.2 (EOL April 2025)*/ - /*serverPorts.Add(new object[] { (ushort)27012 }); // Version 9.3 (EOL July 2025)*/ + /*serverPorts.Add(new object[] { (ushort)27009 });*/ // Version 9.0 (EOL October 2024) + /*serverPorts.Add(new object[] { (ushort)27010 });*/ // Version 9.1 (EOL January 2025) + /*serverPorts.Add(new object[] { (ushort)27011 });*/ // Version 9.2 (EOL April 2025) + /*serverPorts.Add(new object[] { (ushort)27012 });*/ // Version 9.3 (EOL July 2025) serverPorts.Add(new object[] { (ushort)27013 }); // Version 9.4 } else diff --git a/SQLSchemaCompare.Test/DatabaseFixturePostgreSql.cs b/SQLSchemaCompare.Test/DatabaseFixturePostgreSql.cs index dc946e9..c6fe565 100644 --- a/SQLSchemaCompare.Test/DatabaseFixturePostgreSql.cs +++ b/SQLSchemaCompare.Test/DatabaseFixturePostgreSql.cs @@ -29,6 +29,7 @@ public static IEnumerable ServerPorts serverPorts.Add(new object[] { (ushort)26010 }); // Version 15 (EOL November 2027) serverPorts.Add(new object[] { (ushort)26011 }); // Version 16 (EOL November 2028) serverPorts.Add(new object[] { (ushort)26012 }); // Version 17 (EOL November 2029) + serverPorts.Add(new object[] { (ushort)26013 }); // Version 18 (EOL November 2030) } else {