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>
90 lines
2.0 KiB
Python
90 lines
2.0 KiB
Python
from app.assets.services.asset_management import (
|
|
asset_exists,
|
|
delete_asset_reference,
|
|
get_asset_by_hash,
|
|
get_asset_detail,
|
|
list_assets_page,
|
|
resolve_asset_for_download,
|
|
set_asset_preview,
|
|
update_asset_metadata,
|
|
)
|
|
from app.assets.services.bulk_ingest import (
|
|
BulkInsertResult,
|
|
batch_insert_seed_assets,
|
|
cleanup_unreferenced_assets,
|
|
mark_assets_missing_outside_prefixes,
|
|
)
|
|
from app.assets.services.file_utils import (
|
|
get_mtime_ns,
|
|
get_size_and_mtime_ns,
|
|
list_files_recursively,
|
|
verify_file_unchanged,
|
|
)
|
|
from app.assets.services.ingest import (
|
|
DependencyMissingError,
|
|
HashMismatchError,
|
|
create_from_hash,
|
|
upload_from_temp_path,
|
|
)
|
|
from app.assets.services.schemas import (
|
|
AddTagsResult,
|
|
AssetData,
|
|
AssetDetailResult,
|
|
AssetSummaryData,
|
|
DownloadResolutionResult,
|
|
IngestResult,
|
|
ListAssetsResult,
|
|
ReferenceData,
|
|
RegisterAssetResult,
|
|
RemoveTagsResult,
|
|
SetTagsResult,
|
|
TagUsage,
|
|
UploadResult,
|
|
UserMetadata,
|
|
)
|
|
from app.assets.services.tagging import (
|
|
apply_tags,
|
|
list_tags,
|
|
remove_tags,
|
|
)
|
|
|
|
__all__ = [
|
|
"AddTagsResult",
|
|
"AssetData",
|
|
"AssetDetailResult",
|
|
"AssetSummaryData",
|
|
"ReferenceData",
|
|
"BulkInsertResult",
|
|
"DependencyMissingError",
|
|
"DownloadResolutionResult",
|
|
"HashMismatchError",
|
|
"IngestResult",
|
|
"ListAssetsResult",
|
|
"RegisterAssetResult",
|
|
"RemoveTagsResult",
|
|
"SetTagsResult",
|
|
"TagUsage",
|
|
"UploadResult",
|
|
"UserMetadata",
|
|
"apply_tags",
|
|
"asset_exists",
|
|
"batch_insert_seed_assets",
|
|
"create_from_hash",
|
|
"delete_asset_reference",
|
|
"get_asset_by_hash",
|
|
"get_asset_detail",
|
|
"get_mtime_ns",
|
|
"get_size_and_mtime_ns",
|
|
"list_assets_page",
|
|
"list_files_recursively",
|
|
"list_tags",
|
|
"cleanup_unreferenced_assets",
|
|
"mark_assets_missing_outside_prefixes",
|
|
"remove_tags",
|
|
"resolve_asset_for_download",
|
|
"set_asset_preview",
|
|
"update_asset_metadata",
|
|
"upload_from_temp_path",
|
|
"verify_file_unchanged",
|
|
]
|