47 lines
1.5 KiB
Bash
47 lines
1.5 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
cd "$PROJECT_ROOT"
|
|
|
|
if [[ ! -f .env ]]; then
|
|
echo "ERROR: .env 不存在;请填写 NAS PostgreSQL/PostGIS 参数。" >&2
|
|
exit 2
|
|
fi
|
|
source .venv/bin/activate
|
|
|
|
SOURCE_ROOT="${CM95_SOURCE_DIR:-/root/sourceserver/cm95-data/CM93JAPAN}"
|
|
LIMIT="${CM95_SMOKE_CELL_LIMIT:-20}"
|
|
MANIFEST="build/smoke_fid_manifest.sqlite"
|
|
|
|
cm95pg env-check
|
|
cm95pg db-init
|
|
cm95pg db-check
|
|
cm95pg scan "$SOURCE_ROOT"
|
|
cm95pg import "$SOURCE_ROOT" --limit "$LIMIT"
|
|
cm95pg audit "$SOURCE_ROOT" --limit "$LIMIT" --precision-samples 20 --report logs/postgresql_smoke_audit.json
|
|
|
|
DATASET_ID="$(SOURCE_ROOT="$SOURCE_ROOT" python - <<'PY'
|
|
import os
|
|
from pathlib import Path
|
|
from cm93db.config import load_config
|
|
from cm93db.database import connect
|
|
root = str(Path(os.environ['SOURCE_ROOT']).resolve())
|
|
with connect(load_config()) as conn:
|
|
with conn.cursor() as cur:
|
|
cur.execute(
|
|
"SELECT id FROM chart_dataset WHERE source_type='CM93' AND source_root=%s ORDER BY id LIMIT 1",
|
|
(root,),
|
|
)
|
|
row = cur.fetchone()
|
|
if row is None:
|
|
raise SystemExit('dataset not found')
|
|
print(int(row['id']))
|
|
PY
|
|
)"
|
|
|
|
cm95pbf build-fid-manifest --dataset-id "$DATASET_ID" --manifest "$MANIFEST" --rebuild-fid-manifest
|
|
cm95pbf build-tile --dataset-id "$DATASET_ID" --z 10 --x 914 --y 385 --profile delivery --manifest "$MANIFEST" --output-root build/smoke-pbf --report-root build/smoke-reports
|
|
|
|
echo "PostgreSQL/PostGIS smoke: PASS"
|