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

Reply via email to