def connect_args(db_config): """Returns PostgreSQL arguments for connecting via SSL.""" return server.connect_args(db_config)
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))