为什么SQLAlchemy布尔列失败" TypeError:需要一个整数,发现str"

时间:2016-03-14 08:59:10

标签: python sqlite sqlalchemy

在这里,您可以回答自己的问题,以帮助其他人也可能遇到此错误。

我使用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 。或类似的东西。

这里发生了什么?

1 个答案:

答案 0 :(得分:0)

原来问题是默认值。 SQLAlchemy中的布尔值映射到DB中的整数(我确实创建了正确的列类型)但是默认值FALSE没有通过DDL命令转换为整数值0。

修复方法是按如下方式创建列:

ALTER TABLE Users ADD the_column INTEGER DEFAULT 0 NOT NULL;