primary_key argument to mapper is a list

        primary_key=[my_column, my_other_column, ..]

clearly this is a bug: http://www.sqlalchemy.org/docs/orm/mapper_config.html#, 
ill change that now


I'll see if I can add a scalar->list adapter in 0.7 for that arg


On Nov 16, 2010, at 4:53 PM, Royce wrote:

> Using version 0.6.5 under python 2.6.5 even simple augments to
> __mapper_args__ variable course errors
> 
> E.g.
> from sqlalchemy import *
> from sqlalchemy.dialects.mysql import *
> from sqlalchemy.ext.declarative import declarative_base
> 
> Base = declarative_base()
> 
> class CourseAliases(Base):
>    __tablename__ = 'CourseAliases'
> 
>    alias            = Column(CHAR(length=7), nullable=False)
>    year             = Column(INTEGER())
>    course_stream_id = Column(INTEGER(), nullable=False)
>    auto_gen         = Column(CHAR(length=1), nullable=False)
> 
>    __mapper_args__ = {
>        'primary_key': course_stream_id
>    }
> 
> 
> If I try to import it the resultant errors are
> 
> from tables import CourseAliases2
> Traceback (most recent call last):
>  File "<stdin>", line 1, in <module>
>  File "tables/CourseAliases2.py", line 7, in <module>
>    class CourseAliases(Base):
>  File "/usr/pkg/lib/python2.6/site-packages/SQLAlchemy-0.6.5-
> py2.6.egg/sqlalchemy/ext/declarative.py", line 1231, in __init__
>    _as_declarative(cls, classname, cls.__dict__)
>  File "/usr/pkg/lib/python2.6/site-packages/SQLAlchemy-0.6.5-
> py2.6.egg/sqlalchemy/ext/declarative.py", line 1224, in
> _as_declarative
>    **mapper_args)
>  File "/usr/pkg/lib/python2.6/site-packages/SQLAlchemy-0.6.5-
> py2.6.egg/sqlalchemy/orm/__init__.py", line 861, in mapper
>    return Mapper(class_, local_table, *args, **params)
>  File "/usr/pkg/lib/python2.6/site-packages/SQLAlchemy-0.6.5-
> py2.6.egg/sqlalchemy/orm/mapper.py", line 217, in __init__
>    self._configure_pks()
>  File "/usr/pkg/lib/python2.6/site-packages/SQLAlchemy-0.6.5-
> py2.6.egg/sqlalchemy/orm/mapper.py", line 481, in _configure_pks
>    if self.primary_key_argument:
>  File "/usr/pkg/lib/python2.6/site-packages/SQLAlchemy-0.6.5-
> py2.6.egg/sqlalchemy/sql/expression.py", line 1423, in __nonzero__
>    raise TypeError("Boolean value of this clause is not defined")
> TypeError: Boolean value of this clause is not defined
> 
> I know I can add the primary_key=True to a Column but what I actually
> wanted to do is make a multiple column primary key
> 
> E.g
> __mapper_args__ = {
>        'primary_key':  [course_stream_id,alias]
>    }
> 
> this produces a different error.
> 
> Traceback (most recent call last):
>  File "<stdin>", line 1, in <module>
>  File "tables/CourseAliases2.py", line 7, in <module>
>    class CourseAliases(Base):
>  File "/usr/pkg/lib/python2.6/site-packages/SQLAlchemy-0.6.5-
> py2.6.egg/sqlalchemy/ext/declarative.py", line 1231, in __init__
>    _as_declarative(cls, classname, cls.__dict__)
>  File "/usr/pkg/lib/python2.6/site-packages/SQLAlchemy-0.6.5-
> py2.6.egg/sqlalchemy/ext/declarative.py", line 1048, in
> _as_declarative
>    mapper_args[k] = column_copies.get(v,v)
> TypeError: Error when calling the metaclass bases
>    unhashable type: 'list'
> 
> What am I doing wrong ? I am fairly sure I am only doing what the
> documentation says.
> 
> Thanks for any help
> Royce
> 
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To post to this group, send email to sqlalch...@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.
> 

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalch...@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.

Reply via email to