mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-02-18 22:20:03 +00:00
- Add is_missing column to AssetCacheState for soft-delete - Replace hard-delete pruning with mark_cache_states_missing_outside_prefixes - Auto-restore missing cache states when files are re-scanned - Filter out missing cache states from queries by default - Rename functions for clarity: - mark_cache_states_missing_outside_prefixes (was delete_cache_states_outside_prefixes) - get_unreferenced_unhashed_asset_ids (was get_orphaned_seed_asset_ids) - mark_assets_missing_outside_prefixes (was prune_orphaned_assets) - mark_missing_outside_prefixes_safely (was prune_orphans_safely) - Add restore_cache_states_by_paths for explicit restoration - Add cleanup_unreferenced_assets for explicit hard-delete when needed - Update API endpoint /api/assets/prune to use new soft-delete behavior This preserves user metadata (tags, etc.) when base directories change, allowing assets to be restored when the original paths become available again. Amp-Thread-ID: https://ampcode.com/threads/T-019c3114-bf28-73a9-a4d2-85b208fd5462 Co-authored-by: Amp <amp@ampcode.com>
102 lines
3.0 KiB
Python
102 lines
3.0 KiB
Python
from app.assets.database.queries.asset import (
|
|
asset_exists_by_hash,
|
|
bulk_insert_assets,
|
|
get_asset_by_hash,
|
|
upsert_asset,
|
|
)
|
|
from app.assets.database.queries.asset_info import (
|
|
asset_info_exists_for_asset_id,
|
|
bulk_insert_asset_infos_ignore_conflicts,
|
|
delete_asset_info_by_id,
|
|
fetch_asset_info_and_asset,
|
|
fetch_asset_info_asset_and_tags,
|
|
get_asset_info_by_id,
|
|
get_asset_info_ids_by_ids,
|
|
get_or_create_asset_info,
|
|
insert_asset_info,
|
|
list_asset_infos_page,
|
|
set_asset_info_metadata,
|
|
set_asset_info_preview,
|
|
update_asset_info_access_time,
|
|
update_asset_info_name,
|
|
update_asset_info_timestamps,
|
|
update_asset_info_updated_at,
|
|
)
|
|
from app.assets.database.queries.cache_state import (
|
|
CacheStateRow,
|
|
bulk_insert_cache_states_ignore_conflicts,
|
|
bulk_set_needs_verify,
|
|
delete_assets_by_ids,
|
|
delete_cache_states_by_ids,
|
|
delete_orphaned_seed_asset,
|
|
get_cache_states_by_paths_and_asset_ids,
|
|
get_cache_states_for_prefixes,
|
|
get_unreferenced_unhashed_asset_ids,
|
|
list_cache_states_by_asset_id,
|
|
mark_cache_states_missing_outside_prefixes,
|
|
restore_cache_states_by_paths,
|
|
upsert_cache_state,
|
|
)
|
|
from app.assets.database.queries.tags import (
|
|
AddTagsDict,
|
|
RemoveTagsDict,
|
|
SetTagsDict,
|
|
add_missing_tag_for_asset_id,
|
|
add_tags_to_asset_info,
|
|
bulk_insert_tags_and_meta,
|
|
ensure_tags_exist,
|
|
get_asset_tags,
|
|
list_tags_with_usage,
|
|
remove_missing_tag_for_asset_id,
|
|
remove_tags_from_asset_info,
|
|
set_asset_info_tags,
|
|
)
|
|
|
|
__all__ = [
|
|
"AddTagsDict",
|
|
"CacheStateRow",
|
|
"RemoveTagsDict",
|
|
"SetTagsDict",
|
|
"add_missing_tag_for_asset_id",
|
|
"add_tags_to_asset_info",
|
|
"asset_exists_by_hash",
|
|
"asset_info_exists_for_asset_id",
|
|
"bulk_insert_asset_infos_ignore_conflicts",
|
|
"bulk_insert_assets",
|
|
"bulk_insert_cache_states_ignore_conflicts",
|
|
"bulk_insert_tags_and_meta",
|
|
"bulk_set_needs_verify",
|
|
"delete_asset_info_by_id",
|
|
"delete_assets_by_ids",
|
|
"delete_cache_states_by_ids",
|
|
"delete_orphaned_seed_asset",
|
|
"ensure_tags_exist",
|
|
"fetch_asset_info_and_asset",
|
|
"fetch_asset_info_asset_and_tags",
|
|
"get_asset_by_hash",
|
|
"get_asset_info_by_id",
|
|
"get_asset_info_ids_by_ids",
|
|
"get_asset_tags",
|
|
"get_cache_states_by_paths_and_asset_ids",
|
|
"get_cache_states_for_prefixes",
|
|
"get_or_create_asset_info",
|
|
"get_unreferenced_unhashed_asset_ids",
|
|
"insert_asset_info",
|
|
"list_asset_infos_page",
|
|
"list_cache_states_by_asset_id",
|
|
"list_tags_with_usage",
|
|
"mark_cache_states_missing_outside_prefixes",
|
|
"remove_missing_tag_for_asset_id",
|
|
"remove_tags_from_asset_info",
|
|
"restore_cache_states_by_paths",
|
|
"set_asset_info_metadata",
|
|
"set_asset_info_preview",
|
|
"set_asset_info_tags",
|
|
"update_asset_info_access_time",
|
|
"update_asset_info_name",
|
|
"update_asset_info_timestamps",
|
|
"update_asset_info_updated_at",
|
|
"upsert_asset",
|
|
"upsert_cache_state",
|
|
]
|