我有一个现有的sqlite3表,它是在没有主键的情况下创建的。我正在使用automap自动生成类。为了让automap正常工作,正如它期望主键一样,我手动添加了一个主键列:
appuser = db.Table(
'AppUser',
metadata,
db.Column('id', db.Integer, primary_key=True),
extend_existing=True,
autoload=True,
autoload_with=engine
)
现在,每当我试图查询所有列时,我都会收到一个错误,抱怨缺少id。我不希望每次查询表时都指定列,这将在以后显示数据时完成
有没有一种方法可以在不明确提及所有列的情况下绕过这个问题?我尝试了延迟和延迟选项,但没有成功
向如下列添加延迟:deferred(db.Column('id', db.Integer, primary_key=True))
刚刚导致错误:
sqlalchemy.exc.ArgumentError: 'SchemaItem' object, such as a 'Column' or a 'Constraint' expected, got <ColumnProperty at 0x7fa96bc4c6d0; no key>
将“延迟”添加到查询选项也会导致相同的缺少id错误:
userRecords = self.session.query(appuser).all()
userRecords.options(defer('id'))
for row in userRecords:
print(row)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such column: appuser.id
错误发生在for行中,因此我甚至无法打印出单独的属性,如:print(row.app, row.username)
目前没有回答
相关问题 更多 >
编程相关推荐