State-based schema management for SQL Server, PostgreSQL, and MySQL — vs SQL-Server-only DACPAC artifacts authored in SSDT.
SchemaSmith and DACPAC are both state-based, and both are free. The real differentiation is platform reach and tooling weight. SchemaSmith covers SQL Server, PostgreSQL, and MySQL from one lightweight CLI with readable JSON files in source control. DACPAC (authored in SSDT inside Visual Studio, applied by the sqlpackage CLI) is SQL Server and Azure SQL only, uses an XML schema model that is hard to review in pull requests, and requires Visual Studio for authoring.
How the tools differ in approach, features, and developer experience.
| Aspect | SchemaSmith | DACPAC / SSDT |
|---|---|---|
| Approach | State-based, CLI-first | State-based, Visual Studio-centric |
| Platform Coverage | SQL Server, PostgreSQL, MySQL (platform-specific schema definitions) | SQL Server & Azure SQL only |
| Source Format | JSON template files (one per table, view, procedure) | SQL files compiled to an XML model artifact (.dacpac) |
| Authoring Tooling | Any text editor or IDE | Visual Studio with SSDT (Windows) |
| Build / Deploy Steps | One-step: SchemaQuench applies state directly |
Two-step: MSBuild compiles to .dacpac, then sqlpackage applies it |
| PR Readability | JSON template diffs read like the change you made | SQL files diff cleanly; the compiled .dacpac (XML) does not |
| Cross-Platform | SchemaSmith CLI runs on Windows, macOS, Linux, ARM64 | sqlpackage CLI runs on Windows, macOS, Linux; SSDT authoring is Windows / Visual Studio only |
| Drift Detection | Built-in — compares live database to declared state on every run | sqlpackage /Action:DeployReport on demand |
| Reference Data | Declarative DataDelivery blocks; two-pass FK-aware loader |
Pre / post-deploy scripts authored by hand |
| Failed Deployment Recovery | Checkpoint & resume (--ResumeQuench); skips completed work on retry |
Re-run sqlpackage; manual cleanup if mid-deploy state is partial |
| Conditional Deployment | ShouldApplyExpression — one file applies per database, env, or version |
SSDT publish profiles per environment |
| SQL Server Availability Groups | Target:SecondaryServers — primary plus secondaries quenched in parallel |
Apply per server; orchestration is the deployer’s problem |
| Customization | Custom script folders — declare your own deployment slots and ordering | Pre / post-deploy hooks, publish-profile flags |
| Licensing | Free under SSCL v2.0 (source-available); unlimited seats | Free with Visual Studio; sqlpackage is a free Microsoft download |
Checkpoint & resume, two-pass FK-aware data delivery, ShouldApplyExpression, secondary servers for SQL Server Availability Groups, and custom script folders all ship in the free CLI. For teams running DACPAC against AGs or multi-environment SQL Server fleets, that’s orchestration you would otherwise script around sqlpackage by hand.
DataDelivery) bundled with schema deploymentBoth tools are free. The comparison is about tooling weight and developer workflow.
| Aspect | SchemaSmith | DACPAC / SSDT |
|---|---|---|
| Cost | $0/year — free for any purpose, any organization, any scale | Free (sqlpackage is a free Microsoft download; SSDT ships with Visual Studio) |
| Authoring Dependency | Any text editor or IDE; JSON template files in source control | Visual Studio with SSDT for authoring (Windows) |
| Deployment Pipeline | One step: SchemaQuench applies declared state directly |
Two steps: MSBuild compiles the SSDT project to a .dacpac, sqlpackage applies it |
| Source-Control Diffs | Per-object JSON files; diffs read like the change you made | Source SQL files diff cleanly; the compiled .dacpac (XML) does not |
| Cross-Platform Authoring | Yes — CLI and JSON files run anywhere | SSDT authoring is Windows / Visual Studio; sqlpackage CLI runs cross-platform |
Both tools cost $0. The trade-off is workflow shape: SchemaSmith’s lightweight CLI + JSON templates buys you readable PR diffs, cross-platform authoring, and multi-database coverage out of the box. SSDT + sqlpackage buys you Microsoft’s first-party SQL Server toolchain and tight Azure DevOps integration. Pick the one that matches how your team already works — and the platforms you actually have to support.
Switching from DACPAC / SSDT to SchemaSmith is a one-way extraction. Run SchemaTongs once to capture current state as JSON, and that JSON becomes your new source of truth.
Your SSDT project stays on the shelf as a record of how the database got here. SchemaSmith takes over schema management from the current state forward.
Pricing and feature data last verified May 2026. Competitor information may change.