diff --git a/sdk/python/feast/infra/registry/sql.py b/sdk/python/feast/infra/registry/sql.py index 103b1f6c0a6..70bd3c64392 100644 --- a/sdk/python/feast/infra/registry/sql.py +++ b/sdk/python/feast/infra/registry/sql.py @@ -23,6 +23,7 @@ update, ) from sqlalchemy.engine import Engine +from sqlalchemy.exc import IntegrityError from feast import utils from feast.base_feature_view import BaseFeatureView @@ -1028,8 +1029,15 @@ def _maybe_init_project_metadata(self, project): "last_updated_timestamp": update_time, "project_id": project, } - insert_stmt = insert(feast_metadata).values(values) - conn.execute(insert_stmt) + try: + with conn.begin_nested(): + conn.execute(insert(feast_metadata).values(values)) + except IntegrityError: + logger.info( + "Project metadata for %s already initialized by " + "another process.", + project, + ) def _delete_object( self,