FREEDOM251

Freedom251 › Database Migration Tools

DbUp

Free plan Self-hosted

Visit DbUp Alternatives Pricing

DbUp's own site

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

PlanBilled and limitsPrice
DbUpOpen source · MIT licensedFree

As dbup.github.io lists them, read 8 Oct 2026. The maker's own page has the final word.

Getting started

  1. Visit the DbUp website
  2. Choose a console application, embedded class library, website, or PowerShell host
  3. Select a supported database provider
  4. Provide scripts from assemblies, the file system, static code, or a custom provider
  5. Configure transaction behavior, variables, and logging
  6. 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

Look at these too