Freedom251 › Database Migration Tools
DbUp

What DbUp is
DbUp is a free, open-source .NET library for deploying database changes through SQL scripts. It tracks executed scripts and checks that history before deciding what to run; by default, the record is stored in a SQL Server table named SchemaVersions. Scripts can come from embedded assemblies, the file system, static code, or custom providers. Listed database providers include SQL Server, MySQL, SQLite, PostgreSQL, Firebird, Oracle, and Amazon Redshift, among others. The upgrade engine can check connectivity, determine whether an upgrade is needed, show pending or completed scripts, and perform an upgrade. It can run in a console application, embedded class library, website, or PowerShell. Transaction options are no transaction by default, one per script, or one for the upgrade; some changes cannot be rolled back. Logging options include console, trace, SQL context, custom loggers, and Microsoft.Extensions.Logging providers. Logging is off when none is specified. DbUp supports basic variable substitution, but missing referenced variables cause an exception unless they appear in a comment. Dynamically generated code scripts may be vulnerable to SQL injection if database data is inserted. Sql Anywhere, SqlCE, and SQLite Mono providers are marked end of life and unmaintained.
Who it suits
DbUp suits .NET developers who want to deploy database updates from SQL scripts and need options for script sources, transactions, or logging. Its listed providers cover several database systems, with some no longer maintained.
What it does well
- Free and open source under MIT license
- Tracks executed scripts to select updates
- Supports multiple database providers
- Can check connectivity and upgrade needs
What to know first
- Rollback support is not available
- Some database changes cannot be rolled back
- Three listed providers are end of life
- Logging is disabled when none is specified
Limits
DbUp has no rollback support, and the project cautions that some database changes cannot be reversed. Logging is disabled unless a logger is specified.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| DbUp | Open source · MIT licensed | Free |
As dbup.github.io lists them, read 8 Oct 2026. The maker's own page has the final word.
Getting started
- Visit the DbUp website
- Choose a console application, embedded class library, website, or PowerShell host
- Select a supported database provider
- Provide scripts from assemblies, the file system, static code, or a custom provider
- Configure transaction behavior, variables, and logging
- Check connectivity and pending scripts, then run the upgrade
Verdict
DbUp provides script tracking and upgrade checks alongside flexible sources and transaction choices. Account for the lack of rollback support and the project’s caution about dynamically generated scripts.
Questions
How much does DbUp cost?
DbUp is free. Its listed plan is free, and it is MIT licensed.
Which databases does DbUp support?
Listed providers include SQL Server, MySQL, SQLite, PostgreSQL, Firebird, Oracle, and Amazon Redshift, among others.
Where can DbUp run?
It can run from a console application, an application-embedded class library, a website, or PowerShell.
Does DbUp provide rollback support?
No. The project states that rollback support is not available and warns that some changes cannot be rolled back.
Can DbUp automate deployments?
Yes. CI/CD automation is listed as supported.
How does DbUp track scripts?
By default, it records executed scripts in a SQL Server table named SchemaVersions and checks that history when selecting scripts to run.
Facts from DbUp's own pages
- Database support
- The project lists providers for SQL Server, MySQL, SQLite, PostgreSQL, Firebird, Oracle, and Amazon Redshift, among others. · dbup.readthedocs.io, 8 Oct 2026
- Deployment checks
- The upgrade engine can list scripts to execute or already executed, check whether an upgrade is required, test database connectivity, and perform an upgrade. · dbup.readthedocs.io, 8 Oct 2026
- Execution history
- By default, DbUp records executed scripts in a SQL Server table named SchemaVersions and checks it to decide which scripts to skip. · dbup.readthedocs.io, 8 Oct 2026
- Hosting
- DbUp can run from a console application, a class library embedded in an application, a website, or PowerShell. · dbup.readthedocs.io, 8 Oct 2026
- Logging
- Built in logging options include console, trace, SQL context, custom loggers, and Microsoft.Extensions.Logging providers; logging is disabled when none is specified. · dbup.readthedocs.io, 8 Oct 2026
- Maintained providers
- The repository identifies Sql Anywhere, SqlCE, and SQLite Mono as end of life and no longer maintained. · github.com, 8 Oct 2026
- Purpose
- DbUp is a .NET library that deploys database changes by tracking executed SQL scripts and running those needed to update a database. · dbup.github.io, 8 Oct 2026
- Script sources
- Scripts can come from embedded assemblies, the file system, static code supplied scripts, or custom providers. · dbup.readthedocs.io, 8 Oct 2026
- Security limitation
- DbUp warns that dynamically generated code scripts can be vulnerable to SQL injection if database data is inserted into the resulting script. · dbup.readthedocs.io, 8 Oct 2026
- Support
- The project points users to a Google Groups discussion group for questions and its GitHub issues page for bug reports. · dbup.github.io, 8 Oct 2026
- Transactions
- It supports no transaction by default, a transaction per script, or one transaction, and cautions that not all changes can be rolled back. · dbup.readthedocs.io, 8 Oct 2026
- Variable substitution
- DbUp supports basic script variable substitution, and throws an exception when a referenced variable is missing unless it appears in a comment. · dbup.readthedocs.io, 8 Oct 2026
Where DbUp stands on Freedom251
- Database Migration Tools#13 of 32