﻿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
12400	"column ""X"" named in key does not exist error when models.PointField used in unique_together"	monkut	Claude Paroz	"Hit the following error when trying to use a geometry together with Meta: unique_together.
Using posgresql/PostGIS


Model:


{{{
#!python
class Data(models.Model):
    X = models.PointField(null=True, blank=True)
    Y = models.IntegerField()
    class Meta:
        unique_together = ('X', 'Y')
      
}}}


Exception on trying to syncdb/run test:
{{{
Creating table mydata_data
Traceback (most recent call last):
  File ""manage.py"", line 11, in <module>
    execute_manager(settings)
  File ""C:\Python26\lib\site-packages\django\core\management\__init__.py"", line 362, in execute_manager
    utility.execute()
  File ""C:\Python26\lib\site-packages\django\core\management\__init__.py"", line 303, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File ""C:\Python26\lib\site-packages\django\core\management\base.py"", line 195, in run_from_argv
    self.execute(*args, **options.__dict__)
  File ""C:\Python26\lib\site-packages\django\core\management\base.py"", line 222, in execute
    output = self.handle(*args, **options)
  File ""C:\Python26\lib\site-packages\django\core\management\commands\test.py"", line 23, in handle
    failures = test_runner(test_labels, verbosity=verbosity, interactive=interactive)
  File ""C:\Python26\lib\site-packages\django\contrib\gis\tests\__init__.py"", line 135, in run_tests
    create_test_spatial_db(verbosity=verbosity, autoclobber=not interactive)
  File ""C:\Python26\lib\site-packages\django\contrib\gis\db\backend\postgis\creation.py"", line 135, in create_test_spatial_db
    call_command('syncdb', verbosity=verbosity, interactive=interactive)
  File ""C:\Python26\lib\site-packages\django\core\management\__init__.py"", line 166, in call_command
    return klass.execute(*args, **defaults)
  File ""C:\Python26\lib\site-packages\django\core\management\base.py"", line 222, in execute
    output = self.handle(*args, **options)
  File ""C:\Python26\lib\site-packages\django\core\management\base.py"", line 351, in handle
    return self.handle_noargs(**options)
  File ""C:\Python26\lib\site-packages\django\core\management\commands\syncdb.py"", line 78, in handle_noargs
    cursor.execute(statement)
psycopg2.ProgrammingError: column ""X"" named in key does not exist
}}}

I checked the sql generated and it seems this problem occurs because the the geometry column is added *after* the initial table is created.  And the UNIQUE restriction is applied on initial table creation.



"	Bug	closed	GIS	dev	Normal	fixed	1.9	chazen@… ckarrie@…	Ready for checkin	0	0	0	0	0	0
