Subject | Re: [firebird-support] database refactoring |
---|---|
Author | Woody |
Post date | 2006-04-05T17:18:42Z |
From: "Mike Dewhirst" <miked@...>
project I work on that uses FB databases. Anytime a change is needed to the
structure of the database for a project, I add a new update and put the SQL
code needed such as adding columns, tables, stored procedures, etc. I can
also use DML code to perform tasks such as setting new fields to default
values, etc. The program will save the projects' Versionator update
information to a data file. The unit that controls the data file can be
included in any program and it can read the data file and determine if any
updates are needed for a database. Update names/numbers are stored in the
database so that none of them are run more than once.
Using this, I can update any version of a database to the current revision
simply by calling a Versionator function and all updates are performed
automatically. Sadly, as always it seems, it is written as a personal tool
so I didn't put much thought into it regarding others who might want to use
it. One of the most important things that would have to be changed would be
having the code use the API directly instead of using any certain database
components or the module built into a small DLL or program that could be
called from an application.
Not quite sure if that's what you mean by a refactoring tool or not.
Woody (TMW)
> Database refactoring has been of great interest to me for long time.I built my own small app that I call the Versionator. With it, I can add any
> Largely because I have never been able to foresee requirements far
> enough ahead to ever get the design right first time.
>
> This link is an essay (five minute read) by Martin Fowler on the topic.
>
> http://www.martinfowler.com/articles/evodb.html
>
> Does anyone in this group know of the availability of scripts/tools
> described in the essay for Firebird projects?
>
> If not, is anyone interested in building some of them?
>
> I would be keen to become involved and contribute.
project I work on that uses FB databases. Anytime a change is needed to the
structure of the database for a project, I add a new update and put the SQL
code needed such as adding columns, tables, stored procedures, etc. I can
also use DML code to perform tasks such as setting new fields to default
values, etc. The program will save the projects' Versionator update
information to a data file. The unit that controls the data file can be
included in any program and it can read the data file and determine if any
updates are needed for a database. Update names/numbers are stored in the
database so that none of them are run more than once.
Using this, I can update any version of a database to the current revision
simply by calling a Versionator function and all updates are performed
automatically. Sadly, as always it seems, it is written as a personal tool
so I didn't put much thought into it regarding others who might want to use
it. One of the most important things that would have to be changed would be
having the code use the API directly instead of using any certain database
components or the module built into a small DLL or program that could be
called from an application.
Not quite sure if that's what you mean by a refactoring tool or not.
Woody (TMW)