A tool to assist a development team rapidly prototype a DataModel.
Tools don't exist unless they solve an issue for there creators and so...
The BIG Issue
OK so I lied there is more than one. See if any of these sound like you:
*I'm going to generate my DAL from the database to get the project off of the ground but it's going to take days to create all the tables and foreign keys and stuff in SQL.
*There's 12 stakeholders in this application and they all want different things from the data model. I can't keep it all straight.
*My data model is in Source Control but it's hard to keep track of all those changes between ALTER/CREATE/DELETE TABLES when we don't even have any data in them.
These were a few of my issues which I had hoped to address with Crank. I wanted a way to quickly and easily spread the work of Data Model Creation out amongst a number of developers in a way which was easily tracked by source control and practically human readible
(unlike SQL). The idea was not to use the resulting data model directly but rather to use it as a basline to work from.
How does it work
The tool works by reading a bunch of source files and building an in-memory representation of your data model. Once the data model has been built a simple scripter is run which will output the SQL 2005 script to generate the data model. Note that becuase the
model is built up fully in memory there is little reason why the tool could not eventually be used to make "difference scripts" that could be used to update an existing database (handy once actual production gets underway).
The idea for the tool is based on the Liftoff Plugin
for Ruby on Rails and uses a strange dialect of it's language Compact Association Language. I don't have a name for my language but for historical reasons
the scripts are stored in .cal files.