【问题标题】:Table creation fails with SqlAlchemy and Pylons使用 SqlAlchemy 和 Pylons 创建表失败
【发布时间】:2011-05-09 03:21:39
【问题描述】:

我刚刚升级到 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 字典是空的。那么,为什么模型没有反映在元数据中呢?

【问题讨论】:

    标签: sqlite sqlalchemy pylons


    【解决方案1】:

    好的,我找到了问题。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-06
      • 2011-08-16
      • 2020-10-29
      • 1970-01-01
      • 1970-01-01
      • 2016-12-26
      相关资源
      最近更新 更多