Finally I've done it! I started my
first open source project. It is called Flynn and is hosted on
codeplex. Here is the project link: http://www.codeplex.com/flynn
Flynn
is a database refactoring tool. Its task is to help developers and
administrators build up an application's database to a certain state.
Databases
have to be updated when a new version of the application is shipped. QA
has to have a certain application and database version in order to
reproduce bug reports. A new database has to be set up automatically
each time an automated test is being kicked off within a testing
environment.
Most software projects already have some
kind of database updating mechanism. Huge database scripts are executed
to set up the database, certain scripts have to be be run in a certain
order to alter existing databases and special update scripts have to be
executed to make customer specific modifications on the database.
Hopefully there is already some kind of batch processing to set up the
database. But mostly user interactions are still required at some point
during this process.
These are all error-prone and time-consuming
processes. An application developer shouldn't waste time and money
managing the database with such tasks but concentrate on delivering
business value to the customers. Just let Flynn do the database
management stuff!
For Flynn to work you have to
register update scripts in an XML file. A single call to the flynn
application on the console will execute all necessary scripts to lift a
database up to a desired version.
Flynn is currently in an early alpha stage. At the moment it supports Microsoft SQL Server.
These are the planned features and abilities:
- Flexibility and extensibility to support any relational database system
- A graphical user interface to manage the database scripts
- Wizards to create standard database refactoring scripts
- A NAnt task implementation
Btw, the name Flynn is derived from the term Flynn effect. A term used in psychology to describe the year-on-year rise of IQ scores in all parts of the world.
Well,
it sounds cool and through constant refactoring of the database
its quality and the quality of the application will improve - just like
the human's IQ.