Beispiel #1
0
def connect_args(db_config):
    """Returns PostgreSQL arguments for connecting via SSL."""
    return server.connect_args(db_config)
Beispiel #2
0
    class JsonStorage(Base):
        __tablename__ = "jsonstorage"
        id = Column(Integer(), primary_key=True)
        filename = Column(String(255), index=True)
        key = Column(String(250), index=True)
        if url.startswith('postgresql'):
            data = Column(JSONB)
        else:
            data = Column(Text())
        tags = Column(Text())
        modtime = Column(DateTime(), server_default=func.now())
        persistent = Column(Boolean(), nullable=False, server_default=false())

    if url.startswith('postgres'):
        connect_args = server.connect_args('variables snapshot db')
        engine = create_engine(url, connect_args=connect_args, pool_pre_ping=daconfig.get('sql ping', False))
    else:
        engine = create_engine(url, pool_pre_ping=daconfig.get('sql ping', False))
    Base.metadata.create_all(engine)
    Base.metadata.bind = engine
    JsonDb = sessionmaker(bind=engine)()

    def variables_snapshot_connection():
        return engine.raw_connection()

def read_answer_json(user_code, filename, tags=None, all_tags=False):
    if all_tags:
        entries = []
        for entry in JsonDb.execute(select(JsonStorage).filter_by(filename=filename, key=user_code, tags=tags)).scalars():
            entries.append(dict(data=entry.data, tags=entry.tags, modtime=entry.modtime))