在这里,您可以回答自己的问题,以帮助其他人也可能遇到此错误。
我使用Python中的SQLite3并使用SQLAlchemy通过ORM加载我的对象。我有一个指定为:
的列the_column = sqlalchemy.Column(sqlalchemy.Boolean, nullable=False, default=False)
我通过以下方式手动将布尔列添加到我的表中
ALTER TABLE Users ADD the_column INTEGER DEFAULT FALSE NOT NULL;
然而,当我运行应用程序时,我收到错误:
TypeError:需要一个整数,找到str 。或类似的东西。
这里发生了什么?
答案 0 :(得分:0)
原来问题是默认值。 SQLAlchemy中的布尔值映射到DB中的整数(我确实创建了正确的列类型)但是默认值FALSE没有通过DDL命令转换为整数值0。
修复方法是按如下方式创建列:
ALTER TABLE Users ADD the_column INTEGER DEFAULT 0 NOT NULL;