我如何使用SQLAlchemy,autoload和Pyramid?

时间:2012-10-26 01:34:51

标签: python sqlalchemy pyramid

我正在尝试让SQLAlchemy自动加载我的表列(使用MySQL,如果这很重要)。我有:

DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
Base = declarative_base()    

class User(object):
    __tablename__ = 'users'
    __table_args__ = {'schema': 'users', 'autoload': True}

这是我的错误:

InvalidRequestError: SQL expression, column, or mapped entity expected - got '<class 'myproject.models.User'>'

我添加了一个__init__函数,但仍然遇到同样的错误:

def __init__(self,col1,col2):
    self.col1 = col1 
    self.col2 = col2

1 个答案:

答案 0 :(得分:2)

您的User课程应该Base作为其父级,而不是object

DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
engine = create_engine(db_string, echo=db_echo)
Base = declarative_base()    
Base.metadata.bind = engine

class User(Base):
    __tablename__ = 'users'
    __table_args__ = {'schema': 'users', 'autoload': True}