def to_database(graph, connection=None, store_parts=True):
"""Stores a graph in a database.
:param BELGraph graph: A BEL graph
:param connection: An RFC-1738 database connection string, a pre-built :class:`Manager`, or `None`` for
default connection
:type connection: None or str or pybel.manager.Manager
:param bool store_parts: Should the graph be stored in the edge store?
"""
manager = Manager.ensure(connection=connection)
try:
manager.insert_graph(graph, store_parts=store_parts)
except IntegrityError:
manager.session.rollback()
log.warning('Error storing graph - other graph with same metadata'
' already present. Consider incrementing the version')
except OperationalError:
manager.session.rollback()
log.exception('Error storing graph - operational exception')
except Exception as e:
manager.session.rollback()
raise e
评论列表
文章目录