I'm seeing the same problem with postgresql and SA 0.2.  Currently
indexes are getting named like "ux_column/ix_column" - is there any
reason this couldn't be changed to "ux_table_column"?

I've made the change to schema.py and it works for me.  Attached diff is
for the 0.2 branch.


Sean Cazzell


On Mon, 2006-05-15 at 21:32 +1000, Jamie Wilkinson wrote:
> The following code doesn't work when sqlite is used as a backend; the unique
> index on both tables is created with the same name.
> 
> This is SQLAlchemy 0.1.7 with pysqlite2 2.2.2.
> 
> 
> from sqlalchemy import *
> 
> a = Table('a',
> Column('id', Integer, primary_key=True),
> Column('name', String, unique=True)
> )
> 
> b = Table('b',
> Column('id', Integer, primary_key=True),
> Column('name', String, unique=True)
> )
> 
> global_connect('sqlite', {'filename': ':memory:'})
> 
> a.create()
> b.create()
> 
> 
> -------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid0709&bid&3057&dat1642
> _______________________________________________
> Sqlalchemy-users mailing list
> Sqlalchemy-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users
Index: lib/sqlalchemy/schema.py
===================================================================
--- lib/sqlalchemy/schema.py	(revision 1488)
+++ lib/sqlalchemy/schema.py	(working copy)
@@ -191,12 +191,12 @@
             raise ValueError("index and unique may not both be specified")
         if index:
             if index is True:
-                name = 'ix_%s' % column.name
+                name = 'ix_%s_%s' % (self.name, column.name)
             else:
                 name = index
         elif unique:
             if unique is True:
-                name = 'ux_%s' % column.name
+                name = 'ux_%s_%s' % (self.name, column.name)
             else:
                 name = unique
         # find this index in self.indexes

Reply via email to