我正在使用MySQL和SQLAlchemy。我有一个如此定义的类:
Base = sqlalchemy.ext.declarative.declarative_base()
class process(Base):
__tablename__ = 'processes'
process = sqlalchemy.Column(sqlalchemy.Integer, primary_key=True, nullable=False)
get_javascript = sqlalchemy.Column(sqlalchemy.types.Boolean, nullable=False)
我的架构定义如下:
CREATE TABLE processes
(
process Mediumint NOT NULL AUTO_INCREMENT,
get_javascript Varchar(1) NOT NULL,
PRIMARY KEY (process)
) ENGINE = InnoDB
在我的数据库中,我有以下行:
+---------+----------------+
| process | get_javascript |
+---------+----------------+
| 17 | 0 |
| 18 | 1 |
+---------+----------------+
在Python中查询它们总是让我对get_javascript
字段真实。
>>> for i in s.query(db_classes.process).all():
... print i.process, i.get_javascript
...
17 True
18 True
答案 0 :(得分:0)
显然,当您使用VarChar(1)
作为布尔字段时,SQLAlchemy不喜欢它。将其切换到BOOLEAN
并重新创建数据库。它奏效了。