ScriptDatabaseCompatibility parameter silently ignored when ScriptDatabaseOptions = false
- SqlPackage or DacFx Version: SqlPackage 62.4.92
- .NET Framework (Windows-only) or .NET Core: .NET Core
- Environment (local platform and source/target platforms):
- Local platform: Windows 11
- Source platform: DACPAC built from database project in Visual Studio 2022 v17.11.3
- Target platform: Azure SQL Database and SQL Server LocalDB 16.0.1000.6
Steps to Reproduce:
-
Create and build a database project with Compatibility Level 140 and a Target Platform of either "Microsoft Azure SQL Database" or "SQL Server 2022 or Microsoft Azure SQL Managed Instance"
-
Publish the DACPAC with
ScriptDatabaseOptions=falseandScriptDatabaseCompatibility=truesqlpackage /Action:Publish /SourceFile:"C:\TeamCity\repos\ScriptDatabaseCompatibilityTest\bin\Debug\Database.dacpac" /TargetConnectionString:"Data Source=(localdb)\mssqllocaldb;Integrated Security=true;Initial Catalog=testdb" /p:ScriptDatabaseCompatibility=true /p:ScriptDatabaseOptions:false
Expected Result:
Either:
- Database has the compatibility level specified in the database project/DACPAC applied to it. (i.e. the compatibility level is scripted but not other database options)
or
- A warning or error at runtime that the specified deployment options are incompatible with each other.
- The documentation for the ScriptDatabaseCompatibility parameter notes this dependency.
Actual Result:
New database: Database is created with the default compatibility level, with no error or warning at runtime and no note in the documentation.
Existing database: Database compatibility level is unchanged, with no error or warning at runtime and no note in the documentation.
Did this occur in prior versions? If not - which version(s) did it work in? This is our first time trying to use this functionality.