aboutsummaryrefslogtreecommitdiffstats
path: root/python/trade_dataclasses.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/trade_dataclasses.py')
-rw-r--r--python/trade_dataclasses.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/python/trade_dataclasses.py b/python/trade_dataclasses.py
index 9f89a223..af0790c4 100644
--- a/python/trade_dataclasses.py
+++ b/python/trade_dataclasses.py
@@ -10,6 +10,8 @@ from serenitas.analytics.index import CreditIndex
from serenitas.utils.db import dbconn
from process_queue import rename_keys
from lru import LRU
+from psycopg2.errors import UniqueViolation
+import logging
Fund = Literal["SERCGMAST", "BRINKER", "BOWDST"]
Portfolio = Literal[
@@ -211,7 +213,12 @@ class BbgDeal(Deal):
with cls._conn.cursor() as c:
c.executemany(cls._bbg_sql_insert, cls._bbg_insert_queue)
c.executemany(cls._sql_insert, cls._insert_queue)
- cls._conn.commit()
+ try:
+ cls._conn.commit()
+ except UniqueViolation as e:
+ logger = logging.getLogger(__name__)
+ logger.warning(e)
+ cls._conn.rollback()
cls._bbg_insert_queue.clear()
cls._insert_queue.clear()