﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
8573	inspectdb doesn't make use of FK and uniqueness information when the column name has upper case characters	Ramiro Morales	nobody	"This was reported as an [http://code.google.com/p/django-pyodbc/issues/detail?id=12 issue] in the [http://code.google.com/p/django-pyodbc/ django-pyodbc] project but after some debugging turned to be a bug in `inspectdb`.

Problem is it doesn't use the real database column name but rather a derived `att_name` value (used to represent the final Django model field name) when looking up the meta information about FK and indexes the DB backend provides via the `DatabaseIntrospection.get_relations()` method. This fails for database engines that are case sensitive (i.e. all but Oracle).

Also, because of a related problem, it can attempt to use that same innaccurate `att_name` instead of the real table column when trying to introspect the `db_column` field option.

Example:

This `models.py` file:

{{{
#!python
class Magazine(models.Model):
    ident = models.AutoField(primary_key=True, db_column='Ident')

class ReaderComment(models.Model):
    text = models.TextField(max_length=30, primary_key=True, db_column='reader_comment')
}}}

when `syncdb`ed to the database (sqlite3) and the introspected back gives:

{{{
#!python
class IntrosBugMagazine(models.Model):
    ident = models.IntegerField()
    class Meta:
        db_table = u'intros_bug_magazine'

class IntrosBugReadercomment(models.Model):
    reader_comment = models.TextField(primary_key=True)
    class Meta:
        db_table = u'intros_bug_readercomment'
}}}

Note the `ident` field of the `Magazine` model is missing:

 a. The `'primary_key=True'`option(that's because the `syncdb` command didn't make use of the `'primary_key': True` info the database backend introspection support code correctly returned for it.)
 b. The `db_column='Ident'` option
"		closed	django-admin.py inspectdb	dev		fixed			Unreviewed	1	0	0	0	0	0
