On Sat, Jan 3, 2009 at 4:43 AM, Russell Keith-Magee <freakboy3...@gmail.com> wrote: > In the aftermath of DjangoCon [1], Simon Willison, Andrew Godwin and > myself started the django-migrations SIG [2], with the aim of getting > a migrations framework into the Django core that draws from the best > parts of our three respective frameworks (dbmigrations, South and > Django Evolution) > > [1] http://www.youtube.com/watch?v=VSq8m00p1FM > [2] http://code.google.com/p/django-migrations-sig/ > > After some initial activity, there hasn't been much progress, mostly > due to other development priorities in our busy lives (personally, > this means aggregations and some other features for Django v1.1). > However, I have high hopes that we can get discussions going to > deliver something in the v1.2/1.3 timeframe.
Ah, I wasn't sure that this was active, cool. > > You clearly have some good ideas (and more importantly, some working > code implementing those ideas) - I would encourage you to get involved > with the SIG. > > Some quick notes regarding what I have seen so far: > > Firstly, your suggestion that people symlink into django.contrib is > _really_ bad practice. There shouldn't be any need for your code to > reside in django.contrib, and I'd like to discourage this as a > practice before it takes hold as a defacto standard. > > If there is some technical reason why the django.contrib namespace is > required, then raise that issue on the developers list and we can see > what we can do to break that dependency. I can't think of anything > that would cause such a dependency, but it's usually the things you > don't consider that turn out to be problems :-) Ah yes, this is definitely a problem. See, I had to be able to import based on a string (database backend), and I was having problems doing so without an absolute import. I defaulted to this, and didn't think much of it. I'll get on this. > >> The idea is a database migration system that: >> * Doesn't make you use sql. This is an orm, we shouldn't have to use sql. > > I would agree that using SQL shouldn't be required, but the consensus > of all the discussions that have taken place around 'the one true > schema evolution framework' is that a raw SQL mode should be possible. > This is for at least two reasons: > > 1) Satisfying DB Admins that want to manually audit any schema change. > The bigger the company, the more likely a migration strategy will be > required, and the more likely that DB admins will want to check > everything you do. > > 2) Performance on very large databases. "for obj in > Model.objects.all(): change(obj); obj.save()" is very Pythonic and > very easy to read, but will not perform very well on large databases. > Having an easy way to drop to raw SQL is essential for these cases. > Yes, my solution to that, although undocumented I realize, is to allow migrations to also be completely sql. So they would live right next to regular migrations, but have a .sql on them. I was also going to make an option to ./mananage.py migrate that is --sql, so it would build the migration for you just the same, but as sql. >> * During the migration process, *allows you to use the state of >> your previous models as if they were still there*. This is key, and is >> not done anywhere else, as far as I know. > > This is very cool, and I like the way that this aspect is implemented > (the stored snapshot files). I had considered solving this problem > using some metamodel magic, but your approach is a lot more elegant. > >> Currently it's tested on mysql, postgresql_psycopg2, and sqlite3. > > Tested in what sense? > - I've run it on my test project and it works? > - I've got a test suite and I've run it for each backend? > - I've got comprehensive test cases which pass for all backends? > > I have two reasons for asking: > > 1) Your test suite seems very small - especially considering the > multitude of edge cases that need to be considered. The breadth of > testing is one way to get indication of how robust the project is. > Tested as in I've got a test suite and I've run it for each backend, BUT, my test suite is not very large yet, and is missing a lot of edge cases, which is what I'm primarily working on right now. > 2) Ticket #7835 describes a feature that should hopefully make testing > schema migration easier - I'd be interested in any feedback you might > have on this ticket, and what features you would need to make testing > Migratory easier. I'll get on that. > > Best of luck with Migratory - this isn't a trivial task, and what you > have shown so far is quite impressive. > Thanks Russ! --~--~---------~--~----~------------~-------~--~----~ 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 django-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-developers?hl=en -~----------~----~----~----~------~----~------~--~---