Proposal: After running into numerous 'gotcha' type problems with django-contrib and django-hotclub on MySQL and looking at some of the MySQL code , I'd like to propose that Django have an official minimum MySQL version for the Django core and possibly a higher recommended version for contrib, hotclub, and any portable Django apps/snippets/libraries.
Right now, MySQL 3.23 is theoretically supported although I'm quite sure that nobody is using anything lower than 4.0. I'm going to write out my logic in order so that people can simply stop where they disagree, and that can be a good community-minimum. I have opinions about what that minimum should be but at the least, I'd like to get some number out of this and then have that number in the docs. 1) MySQL 3.23 is radically outdated - we really don't need to support 3.23, even informally IMHO. This would fit with the timeline of Django supporting Python 2.3 and up. Python 2.3 was released in July, 2003 - abut when MySQL 4.0 was released. 2) MySQL 4.0 cannot reliably handle unicode. Since Django has made i18n and unicode cornerstones of development, I think it's very dangerous to accept this as a minimum database on any production system. I think it's reasonable to expect code to work on MySQL 4.0 under most circumstances but I don't think time should be spent addressing bugs for such an old version. 3) MySQL 4.1 is largely unicode-friendly. Django-contrib gis wouldn't work on an older database like this, but it most likely should work pretty well. However, virtually nobody uses MySQL 4.1 - it was pretty much a skipped version. 4) MySQL 5.0 is the current production database from MySQL. It was released in December of 2005. In April 2007, it made it into Debian Etch as part of a fully stable release from Debian. As many of you know, when Debian says 'stable', it means that they've tested it for a very long time. This effectively means that any server built in 2008 already has MySQL 5.0 running on it. I propose that we make MySQL 5.0 the standard minimum version for use with Django 1.0. Sites using Django 0.96 and earlier, who are working with extremely long upgrade paths, will need to wait for Django 1.0 to mature before even considering an upgrade at the framework level. For those shops, I'm imagining that they will make the transition some time in the middle of next year or possibly 2010. Because of this, I think we can safely make MySQL 5.0 a minimum since virtually all servers are already using that and anybody who cannot upgrade their database software will likely be in a position where they cannot upgrade Django, etc... Furthermore, with regards to Debian Etch having MySQL 5.0, I would like to define the minimum recommended version as 5.0.32. Any new installation should be using at least this version, which came out 18 months ago. To sum up, I'm proposing: 1. That there is a minimum MySQL version and a recommended minimum MySQL version for Django 1.0 2. That the minimum be MySQL 5.0 (specifically 5.0.15 - the first production version of MySQL 5.0 released October 2005) 3. That the recommended minimum be MySQL 5.0.32 which was released in January of 2007. Advantages include: 1. Geographic methods available out of the box. 2. Strong Unicode capabilities. 3. Clustering and backup options. 4. Large table support. 5. Better standards support. 6. Stored Procs, Views, Cursors, Basic Triggers. I know Postgres is ahead in so many respects on this but as long as MySQL is supported at all, we have to have this conversation. Can ANYBODY who is using MySQL 4.0 or 4.1 on a Django 1.0 system please write in with their comments. I personally think that nobody is even using 4.0 with Django 1.0 - I haven't been able to find anybody yet. This is the command to get the version: > mysqladmin version Regards, Adam 1. http://packages.debian.org/etch/mysql-server - Etch MySQL 2. http://packages.debian.org/sarge-backports/mysql-server - Sarge Backports MySQL 3. http://dev.mysql.com/doc/refman/5.0/en/releasenotes-cs-5-0.html - MySQL Release notes (5.0.32 was a backport release that isn't in these release notes) --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---