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.
- The code and an overview is available on Google Code
- Binaries are available on Google Code Downloads
- Join the DbUp Discuss Google Group
- Get the NuGet package
The sample application included in the code shows how the API works.
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.
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.
Thanks
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
I can't seem to find your unit tests Paul!
This will need to be rectified ;)
@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.
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.
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
Carlos Peix