Skip to content
This repository

RoundhousE is a Database Migration Utility for .NET using sql files and versioning based on source control

branch: master

Merge pull request #137 from hulahomer/master

Fix null ref error for MySql server_connection
latest commit 812f4debbb
Rob Reynolds ferventcoder authored
Octocat-spinner-32 .nuget Update local NuGet.exe used by build. March 18, 2013
Octocat-spinner-32 Settings Update build to match SVN repository. March 25, 2013
Octocat-spinner-32 build.custom converting line endings September 06, 2012
Octocat-spinner-32 build upgrading UC June 17, 2013
Octocat-spinner-32 db Use Convert.ToBoolean to parse returned scalar from database when exp… January 09, 2012
Octocat-spinner-32 deployment Add deployment batch templates using custom create script September 17, 2011
Octocat-spinner-32 docs converting line endings September 06, 2012
Octocat-spinner-32 gems Add and don't ignore /gems/bin/rh. April 01, 2013
Octocat-spinner-32 lib upgrading UC June 17, 2013
Octocat-spinner-32 nuget fixing the nuget tags June 22, 2013
Octocat-spinner-32 product fix null ref error due to server_connection being null when needing t… January 29, 2014
Octocat-spinner-32 sample Switch from SVN to Git for the official repository. March 22, 2013
Octocat-spinner-32 .gitignore Add and don't ignore /gems/bin/rh. April 01, 2013
Octocat-spinner-32 NDepend.xml converting line endings September 06, 2012
Octocat-spinner-32 README.markdown Add 0.8.6 release notes. July 15, 2013
Octocat-spinner-32 RoundhousE.snk signing roundhouse assemblies - #14 August 17, 2011
Octocat-spinner-32 bdddoc.bat Added a DifferenceWithFluentNHibernate to internalize most of the tas… June 05, 2011
Octocat-spinner-32 build.bat Update build to match SVN repository. March 25, 2013
Octocat-spinner-32 Add bash script for running builds. March 22, 2013
Octocat-spinner-32 ilmerge.bat converting line endings September 06, 2012
Octocat-spinner-32 open.bat Update build to match SVN repository. March 25, 2013
Octocat-spinner-32 roundhouse.sln Upgrading all the nugets! March 14, 2013
Octocat-spinner-32 test.bat Update build to match SVN repository. March 25, 2013
Octocat-spinner-32 zip-only.bat converting line endings September 06, 2012
Octocat-spinner-32 zip.bat Update build to match SVN repository. March 25, 2013

Project RoundhousE - Database Change Management done right

RoundhousE - Professional Database Management


Apache 2.0 - see docs\legal (just LEGAL in the zip folder)




NOTE: If you are looking at the source - please run build.bat before opening the solution. It creates the SolutionVersion.cs file that is necessary for a successful build.



RoundhousE is an automated database deployment (change management) system that allows you to use your current idioms and gain much more. Currently it only supports Microsoft SQL Server, but there are future plans for other databases.

It seeks to solve both maintenance concerns and ease of deployment. We follow some of the same idioms as other database management systems (SQL scripts), but we are different in that we think about future maintenance concerns. We want to always apply certain scripts (anything stateless like functions, views, stored procedures, and permissions), so we don't have to throw everything into our change scripts. This seeks to solves future source control concerns. How sweet is it when you can version the database according to your current source control version?

Getting started with RoundhousE


You can download RoundhousE from

You can also obtain a copy from the build server at


If you have Ruby 1.8.6+ (and Gems 1.3.7+) installed, you can get the current release of RoundhousE to your machine quickly!

  1. Type gem install roundhouse
  2. Then from anywhere you can type rh [options]


With NuGet you can get the current release of RoundhousE to your application quickly!

  1. In Visual Studio Package Manager Console type install-package roundhouse
  2. There is also roundhouse.lib, roundhouse.msbuild, and roundhouse.refreshdatabase


Chocolatey like apt-get, but for Windows! This is an alternative method to get the current release of RoundhousE to your machine quickly!

  1. Type cinst roundhouse
  2. Then from anywhere you can type rh [options]


This is the best way to get to the bleeding edge of what we are doing.

  1. Clone the source down to your machine.
    git clone git://
  2. Type cd roundhouse
  3. Type git config core.autocrlf false to leave line endings as they are.
  4. Type git status. You should not see any files to change.
  5. Run build.bat. NOTE: You must have git on the path (open a regular command line and type git).


  • .NET Framework 3.5
  • SA access to the sql server (for creation or deletion)
  • change access to the database (for everything else)


Donations Accepted - If you enjoy using this product or it has saved you time and money in some way, please consider making a donation.
It helps keep to the product updated, pays for site hosting, etc.




  • Use git as official repository. (mpareja)
  • Upgrade UpperCut to version 1.4.2. (ferventcoder)
  • Database Restore: use restore specific timeout value. (icetoast - pull #90)
  • Ignore EOL format changes when detecting script changes. (lahma - pull #104)
  • Include SQL Print statements in debug log. (ferventcoder - issue #68)
  • Include statement being run in log when an error occurs. (ferventcoder - issue #66)
  • Added 'runBeforeUp' anytime directory. (cdrexle - pull #51)
  • Support resolving version from a text file. (mpareja - pull #50, pull #55)
  • Add option to turn off copying scripts into 'itemsRan' directory. (lahma - pull #47)
  • WarnOnOneTimeScriptChange will now cause changed one-time scripts to be re-run. (BiggerNoise - pull #35)
  • Upgrade NHibernate to version 3.3.2. (drusellers)
  • Upgrade FubuCore, HtmlTags and StructureMap. (drusellers)

Bug Fixes

  • SQL Batch Parser: handle training comments, single quotes. (mpareja - pull #108)
  • SQL Batch Parser: fix hang. (AndersMalmgren - pull #100)
  • Token Replacer: preserve case for unmatched tokens. (mpareja - pull #65)
  • SQL scripts no longer truncated to 4000 characters. (charoco, ferventcoder - pull #61)
  • Oracle: Fix handling of null values. (rdingwall - pull #59, issue #58)
  • Script File Versioner: fix exception. (Michael Kobaly - issue #68 on Google Code)
  • Only change DB recovery mode if explicitly told to. (ferventcoder - issue #69 on Google Code)
  • Fixed the debug command line switch. (ferventcoder - issue #40)
  • Ensure version 1.2.10 of log4net is used when installing NuGet packages. (ferventcoder - issue #41)
  • Fix: Improve logging of RH exceptions. (torkelo - pull #60)

Breaking Changes

  • RoundhousE will change the DB recover mode if the recoverymode mode option is explicitly set to simple or full. In the past, RoundhousE would default to full but would only ever set the recovery mode while creating/restoring the database. If you depended on RoundhousE to create/restore the database for you and you don't want the database server default to be used, you should specify the recovery mode option.


  • RH now does token replacement in the sql files using '{{PropertyName}}'. See issue 33 for details. (r299)
  • Always run files that have '.EVERYTIME.' in the name. See issue 51 for details. (r299)
  • RoundhousE ships a DLL for embedding. See issue 44 for details. It has a semi-fluent interface - see ( for details. (r299)
  • FIX: Environment Specific Files run other environments when other environments are part of the name (i.e. BOBTEST is run with TEST). See issue 50 for details. (r299)
  • A folder that runs after the other anytime scripts folders have run has been added. See for details. (r297)
  • Fixing the script modified twice running each time bug. See for details. (r296)
  • Sample is now a project in the release folder. (r287)
  • MSBuild is available again. (r288)

  • Fixed a few issues with using the connection string. You should now be able to only supply the connection string and not server/database as well.

  • Fixed a collation issue with RoundhousE id columns in its tracking tables. See issue 46 for details. (r274)
  • RestoreFromPath can take a relative path. (r269)
  • RH can now upgrade it's internals without user interaction. See issue 40 for details. (r268)
  • MSBuild / NAnt tasks are deprecated and no longer hooked up. Please use the console and call it from your tasks. (r268)
  • RH has differencing support with NHibernate Schema Generation/Updates (r267 - branch, r268)
  • FluentNhibernate and NHibernate are now being used for the internals (r267 - branch, r268)
  • SMO is deprecated and removed (r203 - branch, r268)
  • Gems and build upgrades, oh my! (r259)
  • SQL2000 to 2005 is now a smooth transition. (r221)
  • Fix: SQL2000 - ScriptsRun now correctly references Version for the foreign key. (r220)
  • Fix: Connection should be initialized before asking the database if it supports ddl transactions. (r215)
  • Fix: Uppercase User names when running with Oracle. (r200)
  • RH has differencing support with RedGate. See sample project for details. (r197)
  • Fix: Scrips run errors now updates version number and path w/out a dependency on scripts run. Allows for it to finish during transactional runs and still capture errors. (r196)
  • Fix: Capture errortastic changes to DDL/DML (up) files in the script run errors table. (r191)
  • Added admin connection string to do administrative tasks. (r190)

Prior Release Notes

Prior releases notes are on the wiki.


UppercuT - Automated Builds (automated build in 10 minutes or less?!)

Something went wrong with that request. Please try again.