So I've got a model like such:
class myModel(Base):
id = Column(Integer, primary_key=True)
border = Column(JSONB)
How can I query for rows that don't have a border? I've tried:
filter(myModel.border != None) #nope
filter(myModel.border != 'null') #nope
from sqlalchemy import null
filter(myModel.border != null()) #nope
The value is apparently stored in postgres
as a "JSON encoded null value". Its definitely getting serialized back to a python None
when instantiated, but I have no idea how to query against it. It looks like you can set none_as_null
on the column, i.e.:
Column(JSONB(none_as_null=True))
Which replaces the JSON encoded null
with a SQL null, but that seems strange to have to do on all columns. What am I missing here?
edit: should mention this is v0.9.8 of sqlalchemy