> -----Original Message----- > From: sqlalchemy@googlegroups.com > [mailto:sqlalch...@googlegroups.com] On Behalf Of rajasekhar911 > Sent: 21 August 2009 07:30 > To: sqlalchemy > Subject: [sqlalchemy] Re: index in SA > > > i want to add a composite index to the class inherited from > declarative_base > > I tried this, > > class MyClass: > __tablename__ = 'my_table' > > id = Column(Integer, primary_key=True) > name = Column(String, nullable=False) > type = Column(String, nullable=False) > __table_args__ = ( > Index('ix_name_type','name','type',unique=True) > ) > > gave me an error, > File "/m2svn/trunk/src/model/MyClass.py", line 32, in MyClass > __table_args__ = ( > File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.5-py2.4.egg/ > sqlalchemy/schema.py", line 1461, in __init__ > self._init_items(*columns) > File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.5-py2.4.egg/ > sqlalchemy/schema.py", line 1465, in _init_items > self.append_column(_to_schema_column(column)) > File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.5-py2.4.egg/ > sqlalchemy/schema.py", line 2145, in _to_schema_column > raise exc.ArgumentError("schema.Column object expected") > sqlalchemy.exc.ArgumentError: schema.Column object expected >
I'm not sure if this is the root cause of your error, but __table_args__ must either be a dictionary or a tuple where the last element is a dictionary (according to http://www.sqlalchemy.org/docs/05/reference/ext/declarative.html#table-c onfiguration) Also, I think Index may require actual column parameters rather than strings (according to http://www.sqlalchemy.org/docs/05/metadata.html#indexes). You may be able to use something like the following after your class definition: Index('ix_name_type', MyClass.__table__.c.name, MyClass.__table__.c.type, unique=True) or even Index('ix_name_type', MyClass.name, MyClass.type, unique=True) Hope that helps, Simon --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---