Code

Changes between Version 3 and Version 4 of OlderBackwardsIncompatibleChanges


Ignore:
Timestamp:
08/08/08 07:24:56 (6 years ago)
Author:
jturnbull
Comment:

Added the pre-0.96 changes

Legend:

Unmodified
Added
Removed
Modified
  • OlderBackwardsIncompatibleChanges

    v3 v4  
    1 = Older (pre-0.95) backwards-incompatible changes = 
    2  
    3 This page lists all backwards-incompatible changes to Django prior to the 0.95 release. For backwards-incompatible changes since 0.95 was released, see the BackwardsIncompatibleChanges page. 
     1= Older (pre-0.96) backwards-incompatible changes = 
     2 
     3This page lists all backwards-incompatible changes to Django prior to the 0.96 release. For backwards-incompatible changes since 0.96 was released, see the BackwardsIncompatibleChanges page. 
    44 
    55== Table of Contents == 
     
    3232 * June 28, 2006: [http://groups.google.com/group/django-developers/browse_frm/thread/80c88ffe010fbe4e Auth session format change]  
    3333   * Added by jdunck, May 29, 2007 
     34 
     35Changes made after Django [source:/django/tags/releases/0.95 0.95]: 
     36 * [3512] August 2, 2006: [http://code.djangoproject.com/wiki/OlderBackwardsIncompatibleChanges#Databaseconstraintnameschanged Database constraint names changed] 
     37 * [3552] August 11, 2006: [http://code.djangoproject.com/wiki/OlderBackwardsIncompatibleChanges#Backslashescapingchanged Backslash escaping changed] 
     38 * [3877] September 27, 2006: [http://code.djangoproject.com/wiki/OlderBackwardsIncompatibleChanges#RemovedENABLE_PSYCOsetting Removed ENABLE_PSYCO setting] 
     39 * [4724] + [4767] March 14, 2007: [http://code.djangoproject.com/wiki/OlderBackwardsIncompatibleChanges#EnforcingMySQLdbversion Enforcing MySQLdb version] 
    3440 
    3541== Moved mod_python handler == 
     
    568574 
    569575 
     576== Database constraint names changed == 
     577 
     578As of [3512], the format of the constraint names Django generates for foreign key references changed slightly. These names are only used sometimes, when it is not possible to put the reference directly on the affected column, so this is not always visible. 
     579 
     580The effect of this change is that {{{manage.py reset app_name}}} and similar commands may generate SQL with invalid constraint names and thus generate an error when run against the database (the database server will complain about the constraint not existing). To fix this, you will need to tweak the output of {{{manage.py sqlreset app_name}}} to match the correct constraint names and pass the results to the database server manually. 
     581 
     582== Backslash escaping changed == 
     583 
     584As of [3552], the Django database API now escapes backslashes given as query parameters. If you have any database API code that match backslashes, and it was working before (despite the broken escaping), you'll have to change your code to "unescape" the slashes one level. 
     585 
     586For example, this used to work: 
     587 
     588{{{ 
     589#!python 
     590# Code that matches a single backslash 
     591MyModel.objects.filter(text__contains='\\\\') 
     592}}} 
     593 
     594But it should be rewritten as this: 
     595 
     596{{{ 
     597#!python 
     598# Code that matches a single backslash 
     599MyModel.objects.filter(text__contains='\\') 
     600}}} 
     601 
     602== Removed ENABLE_PSYCO setting == 
     603 
     604As of [3877], the {{{ENABLE_PSYCO}}} setting no longer exists. If your settings file includes {{{ENABLE_PSYCO}}}, nothing will break per se, but it just won't do anything. If you want to use [http://psyco.sourceforge.net/ Psyco] with Django, write some [wiki:PsycoMiddleware custom middleware that activates Psyco]. 
     605 
     606== Enforcing MySQLdb version == 
     607 
     608As of [4724], Django raises an error if you try to use the MySQL backend with a {{{MySQLdb}}} (MySQL Python module) version earlier than 1.2.1p2. There were significant, production-related bugs in earlier versions, so we have upgraded the minimum requirement. 
     609 
     610In [4767], we added a {{{mysql_old}}} backend, which is identical to the {{{mysql}}} backend prior to the change in [4724]. You can use this backend if upgrading the {{{MySQLdb}}} module is not immediately possible. However, the {{{mysql_old}}} backend is deprecated, and  we will not continue developing it. 
     611