代码之家  ›  专栏  ›  技术社区  ›  Hollister

使用SqlAlchemy和Pylons创建表失败

  •  2
  • Hollister  · 技术社区  · 15 年前

    我刚升级到Pylons 1.0和SqlAlchemy 0.6.5。创建DB模式的简单过程不再有效。

    我有一个简单的模型:

    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 回复  |  直到 15 年前
        1
  •  0
  •   Hollister    15 年前

    好吧,我找到问题了。

    model.meta.py , Base = declarative_base() 已执行。当我把这个声明添加到 model.__init__.py ,它显然创建了一个没有元数据的新实例,因此没有要创建的表。

    我不清楚这到底是怎么回事,所以如果有人(迈克拜尔?)有细节,我很想知道。