Source code for selinon.storages.postgresql.models
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# ######################################################################
# Copyright (C) 2016-2018 Fridolin Pokorny, fridolin.pokorny@gmail.com
# This file is part of Selinon project.
# ######################################################################
"""PostgreSQL models definition."""
try:
from sqlalchemy import Column
from sqlalchemy import Integer
from sqlalchemy import Sequence
from sqlalchemy import String
from sqlalchemy.dialects.postgresql import JSONB
from sqlalchemy.ext.declarative import declarative_base
except ImportError as exc:
raise ImportError("Please install dependencies using `pip3 install selinon[postgresql]`") from exc
_Base = declarative_base() # pylint: disable=invalid-name
[docs]class Result(_Base):
"""Record for a task result."""
__tablename__ = 'result'
id = Column(Integer, Sequence('result_id'), primary_key=True) # pylint: disable=invalid-name
flow_name = Column(String(128))
task_name = Column(String(128))
task_id = Column(String(255), unique=True)
# We are using JSONB for postgres, if you want to use other database, change column type
result = Column(JSONB)
node_args = Column(JSONB)
def __init__(self, node_args, flow_name, task_name, task_id, result): # noqa
self.flow_name = flow_name
self.task_name = task_name
self.task_id = task_id
self.result = result
self.node_args = node_args