mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-02-18 22:20:03 +00:00
This change solves the basename collision bug by using UNIQUE(file_path) on the unified asset_references table. Key changes: Database: - Migration 0005 merges asset_cache_states and asset_infos into asset_references - AssetReference now contains: cache state fields (file_path, mtime_ns, needs_verify, is_missing, enrichment_level) plus info fields (name, owner_id, preview_id, etc.) - AssetReferenceMeta replaces AssetInfoMeta - AssetReferenceTag replaces AssetInfoTag - UNIQUE constraint on file_path prevents duplicate entries for same file Code: - New unified query module: asset_reference.py (replaces asset_info.py, cache_state.py) - Updated scanner, seeder, and services to use AssetReference - Updated API routes to use reference_id instead of asset_info_id Tests: - All 175 unit tests updated and passing - Integration tests require server environment (not run here) Amp-Thread-ID: https://ampcode.com/threads/T-019c4fe8-9dcb-75ce-bea8-ea786343a581 Co-authored-by: Amp <amp@ampcode.com>
118 lines
3.4 KiB
Python
118 lines
3.4 KiB
Python
from app.assets.database.queries.asset import (
|
|
asset_exists_by_hash,
|
|
bulk_insert_assets,
|
|
get_asset_by_hash,
|
|
get_existing_asset_ids,
|
|
reassign_asset_references,
|
|
update_asset_hash_and_mime,
|
|
upsert_asset,
|
|
)
|
|
from app.assets.database.queries.asset_reference import (
|
|
CacheStateRow,
|
|
UnenrichedReferenceRow,
|
|
bulk_insert_references_ignore_conflicts,
|
|
bulk_update_enrichment_level,
|
|
bulk_update_is_missing,
|
|
bulk_update_needs_verify,
|
|
convert_metadata_to_rows,
|
|
delete_assets_by_ids,
|
|
delete_orphaned_seed_asset,
|
|
delete_reference_by_id,
|
|
delete_references_by_ids,
|
|
fetch_reference_and_asset,
|
|
fetch_reference_asset_and_tags,
|
|
get_or_create_reference,
|
|
get_reference_by_file_path,
|
|
get_reference_by_id,
|
|
get_reference_ids_by_ids,
|
|
get_references_by_paths_and_asset_ids,
|
|
get_references_for_prefixes,
|
|
get_unenriched_references,
|
|
get_unreferenced_unhashed_asset_ids,
|
|
insert_reference,
|
|
list_references_by_asset_id,
|
|
list_references_page,
|
|
mark_references_missing_outside_prefixes,
|
|
reference_exists_for_asset_id,
|
|
restore_references_by_paths,
|
|
set_reference_metadata,
|
|
set_reference_preview,
|
|
update_enrichment_level,
|
|
update_reference_access_time,
|
|
update_reference_name,
|
|
update_reference_timestamps,
|
|
update_reference_updated_at,
|
|
upsert_reference,
|
|
)
|
|
from app.assets.database.queries.tags import (
|
|
AddTagsDict,
|
|
RemoveTagsDict,
|
|
SetTagsDict,
|
|
add_missing_tag_for_asset_id,
|
|
add_tags_to_reference,
|
|
bulk_insert_tags_and_meta,
|
|
ensure_tags_exist,
|
|
get_reference_tags,
|
|
list_tags_with_usage,
|
|
remove_missing_tag_for_asset_id,
|
|
remove_tags_from_reference,
|
|
set_reference_tags,
|
|
)
|
|
|
|
__all__ = [
|
|
"AddTagsDict",
|
|
"CacheStateRow",
|
|
"RemoveTagsDict",
|
|
"SetTagsDict",
|
|
"UnenrichedReferenceRow",
|
|
"add_missing_tag_for_asset_id",
|
|
"add_tags_to_reference",
|
|
"asset_exists_by_hash",
|
|
"bulk_insert_assets",
|
|
"bulk_insert_references_ignore_conflicts",
|
|
"bulk_insert_tags_and_meta",
|
|
"bulk_update_enrichment_level",
|
|
"bulk_update_is_missing",
|
|
"bulk_update_needs_verify",
|
|
"convert_metadata_to_rows",
|
|
"delete_assets_by_ids",
|
|
"delete_orphaned_seed_asset",
|
|
"delete_reference_by_id",
|
|
"delete_references_by_ids",
|
|
"ensure_tags_exist",
|
|
"fetch_reference_and_asset",
|
|
"fetch_reference_asset_and_tags",
|
|
"get_asset_by_hash",
|
|
"get_existing_asset_ids",
|
|
"get_or_create_reference",
|
|
"get_reference_by_file_path",
|
|
"get_reference_by_id",
|
|
"get_reference_ids_by_ids",
|
|
"get_reference_tags",
|
|
"get_references_by_paths_and_asset_ids",
|
|
"get_references_for_prefixes",
|
|
"get_unenriched_references",
|
|
"get_unreferenced_unhashed_asset_ids",
|
|
"insert_reference",
|
|
"list_references_by_asset_id",
|
|
"list_references_page",
|
|
"list_tags_with_usage",
|
|
"mark_references_missing_outside_prefixes",
|
|
"reassign_asset_references",
|
|
"reference_exists_for_asset_id",
|
|
"remove_missing_tag_for_asset_id",
|
|
"remove_tags_from_reference",
|
|
"restore_references_by_paths",
|
|
"set_reference_metadata",
|
|
"set_reference_preview",
|
|
"set_reference_tags",
|
|
"update_asset_hash_and_mime",
|
|
"update_enrichment_level",
|
|
"update_reference_access_time",
|
|
"update_reference_name",
|
|
"update_reference_timestamps",
|
|
"update_reference_updated_at",
|
|
"upsert_asset",
|
|
"upsert_reference",
|
|
]
|