class AdapterParameterDefineModel(BaseModel):
__tablename__ = 'AdapterParameterDefine'
adapter = Column(VARCHAR(128), primary_key=True)
update_token = Column(VARCHAR(64), nullable=False)
vendor = Column(VARCHAR(64), nullable=False)
define = Column(TextJson, nullable=False)
create_time = Column(TIMESTAMP, server_default=text('CURRENT_TIMESTAMP'))
update_time = Column(TIMESTAMP, server_default=text('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'))
import sqlalchemy.types as types
class TextJson(types.TypeDecorator):
"""
自带json dump load的数据类型
"""
impl = types.TEXT
def process_bind_param(self, value, dialect):
return json.dumps(value)
def process_result_value(self, value, dialect):
if value is not None:
return json.loads(value)
else:
return value
#可以直接obj.define['xxx'],相当于可以直接把对象define拿到的值做字典处理。对于长文本非常有用。