[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