SqlAlchemy 通过方言支持大多数数据库特定的数据类型,但我找不到任何可用于 postgresql xml 列类型的东西。有人知道可行的解决方案吗?理想情况下,它不应该需要我自己实现自定义列类型。
最佳答案
如果您需要在 postgresql 数据库中拥有原生 'xml' 数据类型,您需要编写继承自 UserDefinedType 而非 TypeDecorator 的自定义类型。 Documentation
这是我在其中一个项目中使用的:
import xml.etree.ElementTree as etree
import sqlalchemy
class XMLType(sqlalchemy.types.UserDefinedType):
def get_col_spec(self):
return 'XML'
def bind_processor(self, dialect):
def process(value):
if value is not None:
if isinstance(value, str):
return value
else:
return etree.tostring(value)
else:
return None
return process
def result_processor(self, dialect, coltype):
def process(value):
if value is not None:
value = etree.fromstring(value)
return value
return process
关于python - 在 sqlalchemy 中使用 postgresql xml 数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16153512/