[Schevo-devel] Re: [EVALUATION] - How to Evolve a Database

Ilias Lazaridis ilias at lazaridis.com
Wed Mar 8 23:59:35 EST 2006


Matthew Scott wrote:
> Ilias Lazaridis wrote:
>>> For early development where you want maximum flexibility I
>>> recommend taking full advantage of the ability to specify initial
>>> and sample values within your schema and using that schema to
>>> create a new database each time you change your schema.  This
>>> approach has worked well for me.
>> This one has a low usability.
> 
> What is your criteria for determining usability?  At first glance,
> that is an extremely relative statement you made :)
[...]

Ok, I try to answer thoroughly!

My statements are always in the given context (= the evaluation
template). I Audit Simplicity and Usability always against my personal 
requirements, which result out of how I personally perceive simplicity & 
Usability.

>> An quick workaround would be to add a command "evolve", which is 
>> essentially an alias to "create" (nobody knows that).
>> 
>> evo db evolve database (or a similar term for "evolve")
>> 
>> http://dev.orbtech.com/schevo/ticket/34
> 
> A straight alias of "evolve" to "create" would not lessen confusion, 
> IMHO, and may not be compatible with the way the "evolve" command
> will eventually be used.

see below

> I added a commment to this ticket regarding a create/update/evolve 
> proposal.

I've brought your comment back to the list for discussion (It's my 
fault. Sorry for not yet providing guidelines for the trac usage, I am 
not yet clear about everything).

I use trac to model the "tasks" which I have to apply to make schevo 
pass the evaluation. This is somehow a tool to coordinate myself.

> Having "db evolve" be an alias to "db create" is misleading.
> 
> How about this:
> 
> * "evo db create" is restricted to creating new databases

yes.

> * "evo db update" is used for intra-schema evolution -- that is,
> where the schema semantics change, but the schema version is the
> same. you are "updating" the schema of a database with this command.

the term "update" is missleading (see Update Transaction).

> * "evo db evolve" is used for inter-schema evolution -- that is,
> where the schema semantics may or may not change, but the schema
> version is incremented. you are "evolving" the schema of a database
> with this command.

Use of "evo db evolve" can trigger any actions internally.

The user just enters his intention "evo db evolve" and get's possibly 
some feedback from the command.

-

The first step would be, to take the intra-schema evolution out of the 
"create" (which is simply false).

The second step would be, to place the intra-schema evolution to the 
evolve command.

The third step would be, to enable "evolve" to make additionally the 
"inter-schema" evolutions.

As a fourth step, the "evolve" command should be able to verify 
evolution problems.

-

If there is no time for the first two steps, the lowest effort would be, 
to simply alias the "create" command (still a dirty solution, but at 
least the user sees the correct term "evolve" or "evolute").

-

I will assign shortly some of the defined tasks to myself, to get in 
contact with the schevo code.

Although I am not sure where to do coding work at this point.

Can you suggest me where to make coding experiments (possibly a sandbox 
of the frozen trunk)?

.

-- 
http://lazaridis.com




More information about the Schevo-devel mailing list