fix: Resolve issue when metadata is updated
Resolve issue when attempting to update metadata related to data Fix
This commit is contained in:
parent
3699b0dccb
commit
0a0b030df5
2 changed files with 19 additions and 8 deletions
|
|
@ -4,6 +4,7 @@ import re
|
||||||
import warnings
|
import warnings
|
||||||
from typing import Any
|
from typing import Any
|
||||||
from uuid import UUID
|
from uuid import UUID
|
||||||
|
from sqlalchemy import select
|
||||||
from typing import Any, BinaryIO, Union
|
from typing import Any, BinaryIO, Union
|
||||||
|
|
||||||
from cognee.infrastructure.databases.relational import get_relational_engine
|
from cognee.infrastructure.databases.relational import get_relational_engine
|
||||||
|
|
@ -15,13 +16,24 @@ async def write_metadata(data_item: Union[BinaryIO, str, Any], data_id: UUID, fi
|
||||||
metadata_dict = get_metadata_dict(data_item, file_metadata)
|
metadata_dict = get_metadata_dict(data_item, file_metadata)
|
||||||
db_engine = get_relational_engine()
|
db_engine = get_relational_engine()
|
||||||
async with db_engine.get_async_session() as session:
|
async with db_engine.get_async_session() as session:
|
||||||
metadata = Metadata(
|
|
||||||
id=data_id,
|
metadata = (
|
||||||
metadata_repr=json.dumps(metadata_dict),
|
await session.execute(select(Metadata).filter(Metadata.data_id == data_id))
|
||||||
metadata_source=parse_type(type(data_item)),
|
).scalar_one_or_none()
|
||||||
data_id=data_id
|
|
||||||
)
|
if metadata is not None:
|
||||||
session.add(metadata)
|
metadata.metadata_repr = json.dumps(metadata_dict)
|
||||||
|
metadata.metadata_source = parse_type(type(data_item))
|
||||||
|
await session.merge(metadata)
|
||||||
|
else:
|
||||||
|
metadata = Metadata(
|
||||||
|
id=data_id,
|
||||||
|
metadata_repr=json.dumps(metadata_dict),
|
||||||
|
metadata_source=parse_type(type(data_item)),
|
||||||
|
data_id=data_id
|
||||||
|
)
|
||||||
|
session.add(metadata)
|
||||||
|
|
||||||
await session.commit()
|
await session.commit()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,6 @@ async def ingest_data_with_metadata(data: Any, dataset_name: str, user: User):
|
||||||
).scalar_one_or_none()
|
).scalar_one_or_none()
|
||||||
|
|
||||||
if data_point is not None:
|
if data_point is not None:
|
||||||
await delete_metadata(data_point.metadata_id)
|
|
||||||
data_point.name = file_metadata["name"]
|
data_point.name = file_metadata["name"]
|
||||||
data_point.raw_data_location = file_metadata["file_path"]
|
data_point.raw_data_location = file_metadata["file_path"]
|
||||||
data_point.extension = file_metadata["extension"]
|
data_point.extension = file_metadata["extension"]
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue