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 -~----------~----~----~----~------~----~------~--~---