DbUp: DataDude done right

I just released an open source library called DbUp, which embodies some of the goals I talked about in my how to deploy a database article.

A sample application using DbUp

The sample application included in the code shows how the API works.

A picture of me

Welcome, my name is Paul Stovell. I live in Brisbane and work on Octopus Deploy, an automated deployment tool for .NET applications.

Prior to founding Octopus Deploy, I worked for an investment bank in London building WPF applications, and before that I worked for Readify, an Australian .NET consulting firm. I also worked on a number of open source projects and was an active user group presenter. I was a Microsoft MVP for WPF from 2006 to 2013.

31 Jan 2011

Hi Paul,

Disclaimer: I just checked the Scripts folder in the sample project.

Have you implemented downgrade options, that is, changing back the schema to a previous version.

I'm thinking in the following scenario: you deploy, find a bug in the application and rollback the binaries.


31 Jan 2011

Hi Paul,

Nice work! I was just looking at the sources and saw that you do not wrap a using around the command neither call close on it => SqlScriptExecutor line 47 (Changeste dd46fc83aa).

Best regards, Daniel

01 Feb 2011

I can't seem to find your unit tests Paul!

This will need to be rectified ;)

01 Feb 2011

@Carlos, I'd prefer to just use database backup/restore features - they are much more reliable than downgrade scripts.

@Daniel, thanks, I'll fix that.

@DamianM, you know I don't believe in tests ;) Jim Burger was working on some.

Elias Rangel
Elias Rangel
01 Feb 2011

Hi Paul,

I myself find Microsoft solutions for database versions, lacking in functionality and having to much friction for daily use.

I have been using Rob Reynolds' RoundhousE (http://code.google.com/p/roundhouse/), for almost a year and it has many of the features that are you want to support for database deployment.

I'll keep an eye on your project as I'm always interested in new ideas and tools for database versioning.

Thank you.

02 Feb 2011

Very interesting - it certainly makes more practical sense.

Quick couple of questions:

  • Is there transactional protection when running an upgrade? It is especially painful when something goes wrong (for whatever reason) to know you can roll back and have a consistent state.

  • How do the "Script nnnn" numbers correlate to the "Versions" table, and is it possible to use a different table name for the "Versions" (we have a database with such a table in existance already).

Thank you