Files
2026-08-28 18:05:39 +08:00

207 lines
5.3 KiB
Python

"""PostgreSQL 持久化兼容 facade。
模型、engine、事务单元、资源装配、Repository 和文件一致性协调器分别由
backend.persistence 下的 canonical 模块实现。本模块只显式 re-export 历史
公共名称,保证 API、Worker、迁移脚本和宿主适配层无需同步修改旧 import。
"""
from __future__ import annotations
import errno
import hashlib
import json
import os
import uuid
from contextlib import contextmanager
from pathlib import Path
from typing import Any, Iterator
from uuid import UUID
from sqlalchemy import select
from sqlalchemy.orm import Session
from backend.paths import SUPPORTED_EXTENSIONS, validate_business_storage_key
from backend.storage_security import StorageRootError, validate_controlled_root
from backend.persistence.engine import (
CURRENT_SCHEMA_REVISION,
DatabaseError,
SCOPE_LOCAL,
check_database,
create_engine_for_settings,
create_engine_for_url,
database_url_from_env,
ensure_optional_control_schema,
initialize_local,
)
from backend.persistence.models import (
BigInteger,
Boolean,
CheckConstraint,
DateTime,
DeclarativeBase,
EMBEDDING_DIMENSIONS,
ForeignKey,
ForeignKeyConstraint,
Index,
Integer,
JSON,
JSONB,
Mapped,
String,
UniqueConstraint,
Uuid,
Vector,
VISUAL_EMBEDDING_DIMENSIONS,
UTC,
OPTIONAL_CONTROL_TABLES,
AgentCallbackRequest,
Base,
DerivedImageThumbnail,
ImageProcessingAttempt,
ImageProcessingJob,
ImageProcessingStage,
InstallationState,
Meme,
MemeCollection,
MemeCollectionItem,
MemeEmbedding,
MemeTextEmbedding,
MemeVisualEmbedding,
OperationGrant,
ReverseImageUsageEvent,
Scope,
ScopeContext,
SearchGeneration,
SearchHead,
SearchMigrationState,
StorageOperation,
Task,
TaskBatch,
TaskBatchItem,
TaskLaneResourceSlot,
TaskLaneFairness,
TaskLaneSlot,
GLOBAL_LANE_RESOURCE_KEY,
mapped_column,
timezone,
unicodedata,
utcnow,
)
from backend.persistence.resources import DataEnvironment, DatabaseResources
from backend.persistence.repositories.callbacks import (
AgentCallbackRequestRepository,
InMemoryAgentCallbackRequestRepository,
InMemoryCallbackRequest,
InMemoryCallbackRequestRepository,
)
from backend.persistence.repositories.collections import CollectionRepository
from backend.persistence.repositories.memes import MemeRepository
from backend.persistence.repositories.reverse_image import ReverseImageUsageRepository
from backend.persistence.repositories.search import SearchRepository
from backend.persistence.repositories.tasks import IMAGE_PROCESSING_LANE_TYPES, TaskRepository, _validate_lane_capacities, validate_lane_resource_concurrency, validate_lane_resource_key
from backend.persistence.repositories.thumbnails import DerivedThumbnailRepository
from backend.persistence.repositories.visual_embeddings import VisualEmbeddingRepository, validate_visual_vector
from backend.persistence.storage import BlobStore, StorageCoordinator
from backend.persistence.unit_of_work import UnitOfWork
__all__ = [
"AgentCallbackRequest",
"AgentCallbackRequestRepository",
"Base",
"BigInteger",
"BlobStore",
"Boolean",
"CURRENT_SCHEMA_REVISION",
"CheckConstraint",
"CollectionRepository",
"DataEnvironment",
"DerivedImageThumbnail",
"DerivedThumbnailRepository",
"DatabaseError",
"DatabaseResources",
"DateTime",
"DeclarativeBase",
"EMBEDDING_DIMENSIONS",
"ForeignKey",
"ForeignKeyConstraint",
"IMAGE_PROCESSING_LANE_TYPES",
"ImageProcessingAttempt",
"ImageProcessingJob",
"ImageProcessingStage",
"Index",
"InMemoryAgentCallbackRequestRepository",
"InMemoryCallbackRequest",
"InMemoryCallbackRequestRepository",
"InstallationState",
"Integer",
"JSON",
"JSONB",
"Mapped",
"Meme",
"MemeCollection",
"MemeCollectionItem",
"MemeEmbedding",
"MemeTextEmbedding",
"MemeVisualEmbedding",
"OPTIONAL_CONTROL_TABLES",
"OperationGrant",
"ReverseImageUsageEvent",
"ReverseImageUsageRepository",
"SCOPE_LOCAL",
"Scope",
"ScopeContext",
"SearchGeneration",
"SearchHead",
"SearchMigrationState",
"SearchRepository",
"StorageCoordinator",
"StorageOperation",
"SUPPORTED_EXTENSIONS",
"String",
"Task",
"TaskBatch",
"TaskBatchItem",
"TaskLaneResourceSlot",
"TaskLaneFairness",
"TaskLaneSlot",
"GLOBAL_LANE_RESOURCE_KEY",
"TaskRepository",
"UTC",
"UniqueConstraint",
"UnitOfWork",
"Uuid",
"VISUAL_EMBEDDING_DIMENSIONS",
"Vector",
"VisualEmbeddingRepository",
"_validate_lane_capacities",
"validate_lane_resource_key",
"validate_lane_resource_concurrency",
"check_database",
"create_engine_for_settings",
"create_engine_for_url",
"database_url_from_env",
"ensure_optional_control_schema",
"initialize_local",
"mapped_column",
"timezone",
"unicodedata",
"utcnow",
"validate_visual_vector",
"Any",
"Iterator",
"Path",
"Session",
"UUID",
"contextmanager",
"errno",
"hashlib",
"json",
"os",
"select",
"StorageRootError",
"validate_business_storage_key",
"validate_controlled_root",
"uuid",
]