我刚升级到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
字典为空。那么,为什么模型不反映在元数据中呢?
答案 0 :(得分:0)
好的,我发现了这个问题。
在model.meta.py
中,Base = declarative_base()
已经执行过。当我还将该语句添加到model.__init__.py
时,它显然创建了一个没有元数据的新实例,因此没有要创建的表。
我不知道究竟为什么/如何运作,所以如果有人(Mike Bayer?)有详细信息,我很想知道。