diff --git a/lib/hashserv/sqlalchemy.py b/lib/hashserv/sqlalchemy.py
index cee04bff..af9da80d 100644
--- a/lib/hashserv/sqlalchemy.py
+++ b/lib/hashserv/sqlalchemy.py
@@ -32,6 +32,7 @@ from sqlalchemy import (
 import sqlalchemy.engine
 from sqlalchemy.orm import declarative_base
 from sqlalchemy.exc import IntegrityError
+from sqlalchemy.dialects.postgresql import insert as postgres_insert
 
 Base = declarative_base()
 
@@ -287,11 +288,23 @@ class Database(object):
             return result.rowcount
 
     async def insert_unihash(self, method, taskhash, unihash):
-        statement = insert(UnihashesV2).values(
-            method=method,
-            taskhash=taskhash,
-            unihash=unihash,
-        )
+        # Postgres specific ignore on insert duplicate
+        if self.engine.name == 'postgresql':
+            statement = postgres_insert(UnihashesV2).values(
+                method=method,
+                taskhash=taskhash,
+                unihash=unihash,
+            )
+            statement = statement.on_conflict_do_nothing(
+                index_elements=("method", "taskhash")
+            )
+        else:
+            statement = insert(UnihashesV2).values(
+                method=method,
+                taskhash=taskhash,
+                unihash=unihash,
+            )
+
         self.logger.debug("%s", statement)
         try:
             async with self.db.begin():
@@ -311,7 +324,15 @@ class Database(object):
         if "created" in data and not isinstance(data["created"], datetime):
             data["created"] = datetime.fromisoformat(data["created"])
 
-        statement = insert(OuthashesV2).values(**data)
+        # Postgres specific ignore on insert duplicate
+        if self.engine.name == 'postgresql':
+            statement = postgres_insert(OuthashesV2).values(**data)
+            statement = statement.on_conflict_do_nothing(
+                index_elements=("method", "taskhash", "outhash")
+            )
+        else:
+            statement = insert(OuthashesV2).values(**data)
+
         self.logger.debug("%s", statement)
         try:
             async with self.db.begin():
