Free SQL Server Schema Synchronisation Engine - announcing the release of the Atlantis.SchemaEngine source code

February 24, 2011 19:51 by Matt Whitfield

So, it's been a couple of weeks since the Atlantis tools went 'fully free'. And no, I haven't updated the website yet!

But, here's a follow up that may prove useful to you if you work with schemas a lot, in that I am releasing the source code to SchemaEngine - which is the backbone of our SQL Server products (except for Data Space Analyser, which doesn't really use it). You can do quite a lot with SchemaEngine - you can make schema synchronisation apps, you could implement code completion of your own, make dependency tree viewers. All that sort of stuff.

The API documentation is pretty good - most things in there are fully XML commented, so included in the package is the API reference. This also includes references for all of the internal and private members of the library, too.

Even so, it's not something you'd be able to use straight away without some help - so over the next few weeks I will be doing some posts about how to use SchemaEngine, both in terms of comparing and navigating schemas, how to use the filters (which are fully awesome) and how to generate differencing scripts etc.

I have packaged up the code so that you only have to include one library, and there isn't any extraneous stuff (e.g. common classes that SchemaEngine doesn't make use of).

Before you ask:

  • Yes this is the same code that the Atlantis apps run
  • Yes it's totally free
  • Yes I will keep it up to date (as far as I can)
  • Yes, you do have to use it at your own risk
  • No it's not GPL
  • No I won't be offering any guarantee of support - I will help you if/when I can
  • No it doesn't support Azure
  • No it's not going to support Azure
  • Yes I would love to hear about what you do with it

So, without any further ado - here's the download:

Enjoy - and please feel free to ask questions / leave feedback / spread the word!

Tags: ,



2/24/2011 8:15:41 PM #

Justin Dearing

Matt,First of all, sorry your business ended up being all "Underpants Gnomes"I'm really glad this is being made available. My question is if its not GPL what is it? I just want to know the rules of engagement. Is it going to be BSD? Can I fork its, resell it, etc?Also, any plans on setting up a the project on one of the forges (github/codeplex/bitlocker/etc)? If you setup one of the projects, at the very least anyone that wanted to contribute would know what the "authoritative" fork is.

Justin Dearing United States

2/24/2011 8:27:22 PM #

Justin Dearing

Matt,The XML Doc blocks and clean code layout should make this quite usable by the community. It might be feasible to to schema syncs and the like with powershell scripts using this library.

Justin Dearing United States

2/24/2011 8:29:46 PM #

Matt Whitfield

JustinAt the risk of sounding dumb, i havent given much consideration to a specific license. My feelings are:I would like to hear about how it is usedIf you can help feed yourself/your family with it, greatIf you find bugs or have improvements, would love to hear about themI think, in the long term, this will turn up on codeplex - but before that happens i need to re-arrange the atlantis code base to allow this to be pushed to codeplex without meaning that i have to make a 'special' version each time i do. That's quite a lot of effort - so i thought i would gauge some feedback from the community before pushing ahead with that. If people seem keen and want to engage with it, and possibly contribute, then it would definitely be effort well spent. I hope that makes sense!ThanksM

Matt Whitfield United Kingdom

2/24/2011 9:03:28 PM #

Justin Dearing

Matt,You don't sound dumb, you didn't go into this project expecting to open source it, and just because you give away the source code, doesn't mean people will flock to contribute. OSS projects can suffer from the "Underpants Gnomes" problem, except step three is "Patches" instead of "Profit".IANAL, but I can give my opinions on all the licenses in regards to those three points in relation to a few OSS licenses. For now I think I'm going to get the API docs to build and download the free IDE and schema tool and play with that.I'm quite stoked about this. Ever since RedGate pulled the free version of >NET Reflector I decided I will never buy another one of their products, I've been looking for another schema compare tool to ask my employers/clients/etc to buy. Glad to know there is a free option now.

Justin Dearing United States

2/24/2011 9:11:00 PM #


Pingback from topsy.comTwitter Trackbacks for                 Free SQL Server Schema Synchronisation Engine - announcing the release of the Atlantis.SchemaEngine source code         []        on

2/24/2011 11:44:53 PM #

JustinThanks - I do hope there is a good amount of feedback, as if this goes well, I'd like to open source DataEngine (that sits behind the Data Inspector product) too.If you do have any thoughts, please do let me know!ThanksMatt United Kingdom

3/26/2011 10:37:36 PM #


Pingback from justaprogrammer.netJust A Programmer » How many ways can we ‘script’ a stored proc or UDF from the command line?

4/17/2011 10:35:30 AM #

Felco Secateurs

I wish i can add your blog in my RRS, however i can't get the rrs address. Would you please help me?

Felco Secateurs Luxembourg

4/17/2011 6:10:05 PM #

Justin Dearing

Felco,The rss url is, can you please setup the content type properly on that url.

Justin Dearing United States

6/2/2011 5:02:08 PM #


Hi Justin,I really appreciate for making this open source projecti am trying to create an automated way to run schema compare and dump the schemadifference sql file on a shareso i wish to user the schema compare API to create a console app that can take the source server name, destination server name and the database name and output the schema sync sql file to a UNC path.

Neo United States

6/6/2011 9:54:37 AM #

NeoMy plan is to get the SchemaEngine release up on CodePlex, and then to start doing some blog posts regarding it's usage. Life has been busy recently (new baby on the way and moving house) so I haven't had a lot of time to spend on this stuff.However, to get you started, here is the code you might use to run a compare:ComparisonOptions co = new ComparisonOptions();SchemaContainer sc1 = SchemaReaderFactory.CreateSchemaReaderForSource(connString1, ContainerType.DatabaseDirect, ContainerMode.Comparison).ReadObjects(co);SchemaContainer sc2 = SchemaReaderFactory.CreateSchemaReaderForSource(connString2, ContainerType.DatabaseDirect, ContainerMode.Comparison).ReadObjects(co);List<SchemaDifference> diffList = new SchemaComparer(sc1, sc2, co).Compare();Matt United Kingdom

7/9/2013 2:00:10 AM #


Pingback from

Looking For Free Software That Can Compare Two Sql Server Databases | Click & Find Answer !

Add comment

(Will show your Gravatar icon)

  Country flag

  • Comment
  • Preview


Schema Surf

Tag cloud


<<  March 2015  >>

View posts in large calendar