我正在向JSONB类型的表添加一个新列,但我找不到将默认值设置为空对象以外的任何值所需的格式。
我该如何做到这一点?
目前,我的代码类似于:new_column = db.Column(JSONB, server_default=db.text("'{}'"), nullable=False)
我试过几种我认为可能是直观的处理方式。但到目前为止,它们只是在运行时出错。
示例1:new_column = db.Column(JSONB, server_default=db.text("'{'enabled': True}'"), nullable=False)
示例2:new_column = db.Column(JSONB, server_default=db.text("'{enabled: True}'"), nullable=False)
我想知道解决方案是否不是传递一个Python知道会转换为JSON的东西,而不是已经JSON编码的东西:
new_column = db.Column(JSONB, server_default={'enabled': True}, nullable=False)
也许你也需要设置常规默认值:
default = {'enabled': True}
new_column = db.Column(JSONB, default=default, server_default=default, nullable=False)
如果这些建议没有帮助,你可能需要发布错误消息,以便人们更好地了解问题所在"它抛出一个错误";这无助于理解哪里出了问题,而这对于找出如何让事情正确进行至关重要。
server_default=db.text("'{"enabled": "true"}'")
如果你不想要转义字符,Tripple引号也可以,但这在我看来更好
仍然不确定如何传递booleen值true而不是字符串。但这是另一个时间的问题。