Hey everyone,

Hopefully I've read up enough to jump into this conversation, but if I
haven't then feel free to blast me as is appropriate. If I offend
anyone, try and remember I'm only trying to show my opinions on
different issues. And you're more than welcome to fire back. ;)

So for some reason schema evolution is causing quite a bit of
controversy among the django crowd. At first I couldn't figure out why
until I started reading about the large range of ideas for
implementation. But then, the more I read, the more confused I became
again.

As near as I can tell these are the main issues that don't seem to be resolved:

1. Balancing ease of use with power of use (Ie, Alice vs. Carol)
2. Level of versioning: Model vs. Application vs. Entire database
3. Application of versions: v1 -> v2 -> v3 =? v1 -> v3
4. How do we represent a migration from state 1 to state 2

These are ordered near as I can tell in roughly the order we have to
overcome to have something merged into the trunk.

#1 is a nobrainer. We want both. And we won't settle for less.

#2 There is alot of talking around this issue but I haven't seen
anyone take it full on.
We have to version the entire schema as a single object. Anyone in
doubt, I refer to SVN's repository wide versioning vs CVS's file
specific versioning.

#3 There are those that think v1->v2->v3 == v1->v3. I am not one of
those people.
A database is defined (in my mind) by its schema and the data it
contains. Migrations are non-linear. Each migration script must be
run.

#4 This is minor, but I felt it necessary to say that we're obviously
going to need python scripts to go from state to state. And custom sql
would be easy to integrate.

=======

So those are the main points near as I can tell. Now I'll go over some
of the popular topics I saw:

1. The use of introspection:
Will introspection be used? Of course. Will it be *all* thats used? Of
course not. Introspection will be useful for testing state. It is
possible that we could also add some 'best-guesses' on how to go from
one state to the next, whether someone chooses to accept our guesses
without checking is their problem (Alice). Obviously spitting out
things like "I cannot guess what needs to be done" would be useful. I
tend to think the django crowd would go along with this sort of thing.

2. The famous 'aka' syntax. For those of you out there saying that
this is absurd and doesn't provide any information, I'm thankful. The
syntax is horrible. Remember my quip about SVN vs. CVS versioning?
This is like some ultra brain dead system that trys to version
individual lines in a file. I mean, not even CVS is that bad.

=====

In order to keep things short this is all I'm gonna say for now. This
email is already too long.

Thanks,
Paul Davis

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to