refactor(db)!: adopt project-routed pooled databases

Reorganize WNDB by responsibility and remove legacy scheme endpoints.\n\nRoute analysis and time-series access through project pools, preserve transactional realtime replacement, and refresh GIS materialized views after writes.\n\nAdd database architecture documentation, live pooling coverage, API contract updates, and executable container verification.\n\nBREAKING CHANGE: legacy scheme APIs and flat app.native.wndb module imports are removed.
This commit is contained in:
2026-08-25 18:35:05 +08:00
parent fdbcc5c033
commit fa188af0b1
181 changed files with 8446 additions and 33546 deletions
+14 -14
View File
@@ -5,7 +5,7 @@ from typing import Any
from app.algorithms.sensor import kmeans as kmeans_sensor
from app.algorithms.sensor import sensitivity
from app.native.wndb.s42_sensor_placement import create_sensor_placement
from app.infra.db.postgresql.sensor_placement import create_sensor_placement
from app.services.sensor_placement import (
SensorPlacementConflictError,
SensorPlacementValidationError,
@@ -50,18 +50,18 @@ def _sensor_inp_lock(name: str):
def _create_validated_placement(
name: str,
*,
scheme_name: str,
run_name: str,
min_diameter: int,
username: str,
sensor_location: list[str],
created_by: str,
sensor_locations: list[str],
) -> dict[str, Any]:
validate_sensor_placement_nodes(name, sensor_location)
validate_sensor_placement_nodes(name, sensor_locations)
return create_sensor_placement(
name,
scheme_name=scheme_name,
run_name=run_name,
min_diameter=min_diameter,
username=username,
sensor_location=sensor_location,
created_by=created_by,
sensor_locations=sensor_locations,
)
@@ -89,10 +89,10 @@ def pressure_sensor_placement_sensitivity(
)
return _create_validated_placement(
name,
scheme_name=scheme_name,
run_name=scheme_name,
min_diameter=min_diameter,
username=username,
sensor_location=sensor_location,
created_by=username,
sensor_locations=sensor_location,
)
@@ -124,8 +124,8 @@ def pressure_sensor_placement_kmeans(
)
return _create_validated_placement(
name,
scheme_name=scheme_name,
run_name=scheme_name,
min_diameter=min_diameter,
username=username,
sensor_location=sensor_location,
created_by=username,
sensor_locations=sensor_location,
)