Files
CM95/scripts/cm95_postgresql_kyushu_compare.sh
2026-10-02 18:03:26 +08:00

51 lines
2.3 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$ROOT"
[[ -f .env ]] || { echo "missing .env" >&2; exit 2; }
source .venv/bin/activate
set -a; source .env; set +a
export PYTHONUNBUFFERED=1
MANIFEST="${CM95_FID_MANIFEST:-build/cm95_fid_manifest_v1.sqlite}"
PLAN="${CM95_COMPARE_PLAN:-build/production/cm95_postgresql_kyushu_compare_plan.json}"
RELEASE_ROOT="${CM95_COMPARE_RELEASE_ROOT:-build/releases-postgresql-compare}"
MYSQL_RELEASE="${CM95_MYSQL_COMPARE_RELEASE:-/root/sourceserver/cm95/build/releases-s52-v2/cm95-d1-62a85bd40d3a-2b2e7d976a43}"
WORKERS="${CM95_PBF_WORKERS:-4}"
S52_LOOKUPS="${CM95_S52_LOOKUPS:-resources/s52/lookup_rule_ir.json}"
S52_CONTRACT="${CM95_S52_RESOURCE_CONTRACT:-resources/s52/resource_contract.json}"
DATASET_ID="$(python - <<'PY'
from cm93db.config import load_config
from cm93db.database import connect
with connect(load_config()) as c:
with c.cursor() as cur:
cur.execute("SELECT id FROM chart_dataset WHERE source_type=%s ORDER BY id LIMIT 1",("CM93",))
row=cur.fetchone()
if not row: raise SystemExit("dataset not found")
print(int(row["id"]))
PY
)"
cm95pbf build-fid-manifest --dataset-id "$DATASET_ID" --manifest "$MANIFEST" --rebuild-fid-manifest
cm95pbf plan-production --dataset-id "$DATASET_ID" --zooms 5-12 --profile delivery \
--manifest "$MANIFEST" --s52-lookups "$S52_LOOKUPS" --s52-resource-contract "$S52_CONTRACT" \
--s52-point-table Paper --s52-boundary-table Plain --s52-mariner-mode runtime \
--aoi-name kyushu-main-nearby-v1 --aoi-bbox 128.0,29.5,132.5,34.8 \
--tile-enumeration-mode aoi-complete --output "$PLAN"
cm95pbf build-production --plan "$PLAN" --release-root "$RELEASE_ROOT" --workers "$WORKERS" --max-attempts 3
cm95pbf status-production --plan "$PLAN" --release-root "$RELEASE_ROOT"
cm95pbf finalize-production --plan "$PLAN" --release-root "$RELEASE_ROOT" --skip-style-contract
RELEASE_ID="$(python - "$PLAN" <<'PY'
import json,sys
print(json.load(open(sys.argv[1],encoding="utf-8"))["release_id"])
PY
)"
PG_PBF="$RELEASE_ROOT/$RELEASE_ID/pbf/delivery"
MYSQL_PBF="$MYSQL_RELEASE/pbf/delivery"
python tools/compare_pbf_trees.py "$MYSQL_PBF" "$PG_PBF" --output logs/mysql_postgresql_kyushu_pbf_compare.json
echo "POSTGRES_RELEASE_ID=$RELEASE_ID"
echo "POSTGRES_PBF=$PG_PBF"
echo "MYSQL_PBF=$MYSQL_PBF"