使用SqlAlchemy和Pylons创建表失败

时间:2010-11-12 15:17:50

标签: sqlite sqlalchemy pylons

我刚升级到Pylons 1.0和SqlAlchemy 0.6.5。什么是创建数据库模式的简单过程不再有效。

我有一个简单的模型:

Base = declarative_base()

class User(Base):
    __tablename__ = 'user'

    id = Column(Integer, primary_key=True)
    user_name = Column(String)

    def __init__(self, userName):
        self.userName = userName

    def __repr__(self):
       return "<User('%s')>" % (self.userName)

当我跑步时

paster setup-app development.ini

创建了数据库文件(sqlite3),但没有创建表,也没有返回错误。

记录显示websetup.py中的以下行执行:

log.info("Creating schema...")
Base.metadata.create_all(bind = Session.bind, checkfirst = True)
log.info("Database successfully set up.")

我错过了什么?

修改:进一步挖掘显示Base.metadata.tables字典为空。那么,为什么模型不反映在元数据中呢?

1 个答案:

答案 0 :(得分:0)

好的,我发现了这个问题。

model.meta.py中,Base = declarative_base()已经执行过。当我还将该语句添加到model.__init__.py时,它显然创建了一个没有元数据的新实例,因此没有要创建的表。

我不知道究竟为什么/如何运作,所以如果有人(Mike Bayer?)有详细信息,我很想知道。