Sql Server data tools fails to publish/deploy - related to ledger tables
- Dominant language
- C#
- Stars
- 460
- Forks
- 29
- Avg merge
- 4d 9h
- Merged PRs (30d)
- 7
Description
- SqlPackage or DacFx Version: 170.0.94.3
- .NET Framework (Windows-only) or .NET Core: 4.8.09037
- Environment (local platform and source/target platforms): Windows 10
**Steps to Reproduce:**
1. Generate the script to the target database
2. (see background below)
I have a blocking issue - after adding a ledger table to my target database - and then having to make a schema change to it, SQL Server will create “MSSQL_DroppedLedgerTable_*” tables. The existance of these tables causes the schema deploy to fail. This is a critical issue.
Running sqlpackage.exe with the diagnostics output, the error happens as shown below:
[MSSQL_DroppedLedgerColumn_RelatedTransactionGuid_A4604BA27A264663983871CBD6516A63] is a dropped column in a ledger table. Such objects are not allowed when used as part of a bacpac file or a dacpac file. The column will not be included in the resulting data package. For more information see https://go.microsoft.com/fwlink/?linkid=2182889.
Microsoft.Data.Tools.Diagnostics.Tracer Error: 19 : 2025-05-10T10:35:50 : Microsoft.SqlServer.Dac.DacServicesException: An error occurred during deployment plan generation. Deployment cannot continue.
Error SQL72018: Column could not be imported but one or more of these objects exist in your source.
—> Microsoft.Data.Tools.Schema.Sql.Deployment.DeploymentFailedException: Errors occurred while modeling the target database. Deployment can not continue.
at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeployment.ThrowIfErrors(String message, ErrorManager errors, Object category) in C:__w\1\s\Source\SchemaSql\Deployment\SqlDeployment.cs:line 1722
at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeploymentEndpointServer.OnLoad(ErrorManager errors, DeploymentEngineContext context) in C:__w\1\s\Source\SchemaSql\Deployment\SqlDeploymentEndpoint.cs:line 863
at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeploymentEndpoint.Load(ErrorManager errors, DeploymentEngineContext context) in C:__w\1\s\Source\SchemaSql\Deployment\SqlDeploymentEndpoint.cs:line 269
at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeployment.PrepareModels() in C:__w\1\s\Source\SchemaSql\Deployment\SqlDeployment.cs:line 1706
at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeployment.InitializePlanGeneratator() in C:__w\1\s\Source\SchemaSql\Deployment\SqlDeployment.cs:line 1369
at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeployment.CreateController(Action`1 msgHandler) in C:__w\1\s\Source\SchemaSql\Deployment\SqlDeployment.cs:line 601
at Microsoft.SqlServer.Dac.DacServices.CreateController(SqlDeployment deploymentEngine, ErrorManager errorManager) in C:__w\1\s\Source\DeploymentApi\DacServices.cs:line 1496
— End of inner exception stack trace —
Microsoft.Data.Tools.Diagnostics.Tracer Verbose: 25 : 2025-05-10T10:35:50 : Perf: Operation ended (name, details, elapsed in ms): Initializing deployment,12223
Microsoft.Data.Tools.Diagnostics.Tracer Information: 24 : 2025-05-10T10:35:51 :
Telemetry event: DacFxOperationEnd,
common properties: name: [DacFxVersion, 170.0.94.3], value: 0,name: [ApplicationName, sqlpackage], value: 1,name: [ApplicationVersion, 170.0.94.3], value: 2,name: [CurrentCulture, en-CA], value: 3,name: [DefaultEncoding, utf-8], value: 4,name: [DacFxSource, None], value: 5,name: [OSVersion, Microsoft Windows 10.0.19045], value: 6,name: [ProcessArchitecture, X64], value: 7,name: [DotNetPlatform, .NET 8.0.15], value: 8
properties: name: [Action, Publish], value: 0,name: [Options, [{‘name’:‘AllowDropBlockingAssemblies’,‘value’:‘False’},{‘name’:‘AllowExternalLanguagePaths’,‘value’:‘False’},{‘name’:‘AllowExternalLibraryPaths’,‘value’:‘False’},{‘name’:‘AllowIncompatiblePlatform’,‘value’:‘False’},{‘name’:‘BackupDatabaseBeforeChanges’,‘value’:‘False’},{‘name’:‘BlockOnPossibleDataLoss’,‘value’:‘False’},{‘name’:‘BlockWhenDriftDetected’,‘value’:‘True’},{‘name’:‘CommentOutSetVarDeclarations’,‘value’:‘False’},{‘name’:‘CompareUsingTargetCollation’,‘value’:‘False’},{‘name’:‘CreateNewDatabase’,‘value’:‘False’},{‘name’:‘DeployDatabaseInSingleUserMode’,‘value’:‘False’},{‘name’:‘IsAlwaysEncryptedParameterizationEnabled’,‘value’:‘False’},{‘name’:‘DisableAndReenableDdlTriggers’,‘value’:‘True’},{‘name’:‘DoNotAlterChangeDataCaptureObjects’,‘value’:‘True’},{‘name’:‘DoNotAlterReplicatedObjects’,‘value’:‘True’},{‘name’:‘DropConstraintsNotInSource’,‘value’:‘True’},{‘name’:‘DropDmlTriggersNotInSource’,‘value’:‘True’},{‘name’:‘IgnoreDatabaseWorkloadGroups’,‘value’:‘False’},{‘name’:‘IgnoreWorkloadClassifiers’,‘value’:‘False’},{‘name’:‘DropExtendedPropertiesNotInSource’,‘value’:‘True’},{‘name’:‘AllowTableRecreation’,‘value’:‘True’},{‘name’:‘DropIndexesNotInSource’,‘value’:‘True’},{‘name’:‘DropObjectsNotInSource’,‘value’:‘False’},{‘name’:‘DropPermissionsNotInSource’,‘value’:‘False’},{‘name’:‘DropRoleMembersNotInSource’,‘value’:‘False’},{‘name’:‘DropStatisticsNotInSource’,‘value’:‘True’},{‘name’:‘DoNotDropDatabaseWorkloadGroups’,‘value’:‘False’},{‘name’:‘DoNotDropWorkloadClassifiers’,‘value’:‘False’},{‘name’:‘GenerateSmartDefaults’,‘value’:‘False’},{‘name’:‘HashObjectNamesInLogs’,‘value’:‘False’},{‘name’:‘IgnoreAnsiNulls’,‘value’:‘True’},{‘name’:‘IgnoreAuthorizer’,‘value’:‘False’},{‘name’:‘IgnoreColumnCollation’,‘value’:‘False’},{‘name’:‘IgnoreColumnOrder’,‘value’:‘False’},{‘name’:‘IgnoreComments’,‘value’:‘False’},{‘name’:‘IgnoreCryptographicProviderFilePath’,‘value’:‘True’},{‘name’:‘IgnoreDdlTriggerOrder’,‘value’:‘False’},{‘name’:‘IgnoreDdlTriggerState’,‘value’:‘False’},{‘name’:‘IgnoreDefaultSchema’,‘value’:‘False’},{‘name’:‘IgnoreDmlTriggerOrder’,‘value’:‘False’},{‘name’:‘IgnoreDmlTriggerState’,‘value’:‘False’},{‘name’:‘IgnoreExtendedProperties’,‘value’:‘False’},{‘name’:‘IgnoreFileAndLogFilePath’,‘value’:‘True’},{‘name’:‘IgnoreFilegroupPlacement’,‘value’:‘True’},{‘name’:‘IgnoreFileSize’,‘value’:‘True’},{‘name’:‘IgnoreFillFactor’,‘value’:‘True’},{‘name’:‘IgnoreFullTextCatalogFilePath’,‘value’:‘True’},{‘name’:‘IgnoreIdentitySeed’,‘value’:‘False’},{‘name’:‘IgnoreIncrement’,‘value’:‘False’},{‘name’:‘IgnoreIndexOptions’,‘value’:‘False’},{‘name’:‘IgnoreIndexPadding’,‘value’:‘True’},{‘name’:‘IgnoreKeywordCasing’,‘value’:‘True’},{‘name’:‘IgnoreLockHintsOnIndexes’,‘value’:‘False’},{‘name’:‘IgnoreLoginSids’,‘value’:‘True’},{‘name’:‘IgnoreNotForReplication’,‘value’:‘False’},{‘name’:‘IgnoreObjectPlacementOnPartitionScheme’,‘value’:‘True’},{‘name’:‘DoNotEvaluateSqlCmdVariables’,‘value’:‘True’},{‘name’:‘IgnorePartitionSchemes’,‘value’:‘False’},{‘name’:‘IgnoreTablePartitionOptions’,‘value’:‘False’},{‘name’:‘IgnorePermissions’,‘value’:‘False’},{‘name’:‘IgnoreQuotedIdentifiers’,‘value’:‘True’},{‘name’:‘IgnoreRoleMembership’,‘value’:‘False’},{‘name’:‘IgnoreRouteLifetime’,‘value’:‘True’},{‘name’:‘IgnoreSemicolonBetweenStatements’,‘value’:‘True’},{‘name’:‘IgnoreSensitivityClassifications’,‘value’:‘False’},{‘name’:‘IgnoreTableOptions’,‘value’:‘False’},{‘name’:‘IgnoreUserSettingsObjects’,‘value’:‘False’},{‘name’:‘IgnoreWhitespace’,‘value’:‘True’},{‘name’:‘IgnoreWithNocheckOnCheckConstraints’,‘value’:‘False’},{‘name’:‘IgnoreWithNocheckOnForeignKeys’,‘value’:‘False’},{‘name’:‘AllowUnsafeRowLevelSecurityDataMovement’,‘value’:‘False’},{‘name’:‘IncludeCompositeObjects’,‘value’:‘True’},{‘name’:‘IncludeTransactionalScripts’,‘value’:‘False’},{‘name’:‘NoAlterStatementsToChangeClrTypes’,‘value’:‘False’},{‘name’:‘PopulateFilesOnFileGroups’,‘value’:‘True’},{‘name’:‘PreserveIdentityLastValues’,‘value’:‘False’},{‘name’:‘PerformIndexOperationsOnline’,‘value’:‘False’},{‘name’:‘RegisterDataTierApplication’,‘value’:‘False’},{‘name’:‘RunDeploymentPlanExecutors’,‘value’:‘False’},{‘name’:‘ScriptDatabaseCollation’,‘value’:‘False’},{‘name’:‘ScriptDatabaseCompatibility’,‘value’:‘False’},{‘name’:‘ScriptDatabaseOptions’,‘value’:‘True’},{‘name’:‘ScriptDeployStateChecks’,‘value’:‘False’},{‘name’:‘ScriptFileSize’,‘value’:‘False’},{‘name’:‘ScriptNewConstraintValidation’,‘value’:‘True’},{‘name’:‘ScriptRefreshModule’,‘value’:‘True’},{‘name’:‘TreatVerificationErrorsAsWarnings’,‘value’:‘False’},{‘name’:‘RebuildIndexesOfflineForDataPhase’,‘value’:‘False’},{‘name’:‘RestoreSequenceCurrentValue’,‘value’:‘True’},{‘name’:‘DisableIndexesForDataPhase’,‘value’:‘False’},{‘name’:‘DisableParallelismForEnablingIndexes’,‘value’:‘False’},{‘name’:‘UnmodifiableObjectWarnings’,‘value’:‘True’},{‘name’:‘VerifyCollationCompatibility’,‘value’:‘True’},{‘name’:‘VerifyDeployment’,‘value’:‘True’},{‘name’:‘CommandTimeout’,‘value’:‘60’},{‘name’:‘LongRunningCommandTimeout’,‘value’:‘0’},{‘name’:‘DatabaseLockTimeout’,‘value’:‘60’}]], value: 1,name: [IncludesSQLCMDVariables, False], value: 2,name: [DataStorageType, ], value: 3,name: [IncludesContributors, False], value: 4,name: [PackageVersion, 3.0.0.0], value: 5,name: [ApplicationProperty, DotnetTool], value: 6,name: [OperationResult, Failed], value: 7,name: [DacErrors, 72018], value: 8,name: [DacErrorSummary, [{code:72018,severity:‘Error’}]], value: 9,name: [ConnectionRetries, ], value: 10
measurements: name: [ReverseEngineerDurationMs, 10321], value: 0,name: [CreatingDeploymentPlanDurationMs, 12227], value: 1,name: [MemoryUsageMB, 113], value: 2,name: [DurationMs, 12254], value: 3
common measurements:
Microsoft.Data.Tools.Diagnostics.Tracer Information: 18 : 2025-05-10T10:35:51 : Time elapsed: 0:00:12.76.
Microsoft.Data.Tools.Diagnostics.Tracer Information: 0 : 2025-05-10T10:35:51 : SqlPackage failed
Contributor guide
Research direction
Start with the reported SqlPackage 170.0.94.3 reproduction: generate a script or publish after changing a ledger table so MSSQL_DroppedLedgerColumn_* objects exist. Use the diagnostic output and SQL72018 error as the baseline; done means deployment no longer fails when these ledger-related objects are present.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, sql
- Domain
- cli, databases, devtools
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100