Add PCP architecture docs and TGU ops updates
Capture current PCP architecture notes, service-map prototypes, TGU operations UI/map work, local configuration updates, database helper scripts, and request/sample JSON artifacts.
This commit is contained in:
Executable
+86
@@ -0,0 +1,86 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# PostgreSQL connection settings. Override via env if needed:
|
||||
# PGHOST=... PGPORT=... PGUSER=... PGPASSWORD=... ./create_pcp_databases.sh
|
||||
PGHOST="${PGHOST:-192.168.1.8}"
|
||||
PGPORT="${PGPORT:-5432}"
|
||||
PGUSER="${PGUSER:-postgres}"
|
||||
PGPASSWORD="${PGPASSWORD:-password}"
|
||||
export PGPASSWORD
|
||||
|
||||
DATABASES=(
|
||||
pcp_ballistics
|
||||
pcp_complex_plan
|
||||
pcp_missions
|
||||
pcp_requests
|
||||
pcp_satellite_catalog
|
||||
pcp_satellites
|
||||
pcp_slots
|
||||
pcp_stations
|
||||
pcp_tgu
|
||||
pcp_tle
|
||||
)
|
||||
|
||||
# Services whose migrations use PostGIS geometry/extension.
|
||||
POSTGIS_DATABASES=(
|
||||
pcp_ballistics
|
||||
pcp_missions
|
||||
pcp_requests
|
||||
pcp_slots
|
||||
pcp_stations
|
||||
)
|
||||
|
||||
psql_admin() {
|
||||
psql -v ON_ERROR_STOP=1 \
|
||||
--host="$PGHOST" \
|
||||
--port="$PGPORT" \
|
||||
--username="$PGUSER" \
|
||||
--dbname=postgres \
|
||||
"$@"
|
||||
}
|
||||
|
||||
psql_db() {
|
||||
local db="$1"
|
||||
shift
|
||||
psql -v ON_ERROR_STOP=1 \
|
||||
--host="$PGHOST" \
|
||||
--port="$PGPORT" \
|
||||
--username="$PGUSER" \
|
||||
--dbname="$db" \
|
||||
"$@"
|
||||
}
|
||||
|
||||
create_database_if_missing() {
|
||||
local db="$1"
|
||||
local exists
|
||||
exists="$(psql_admin -tAc "SELECT 1 FROM pg_database WHERE datname = '$db'")"
|
||||
if [[ "$exists" == "1" ]]; then
|
||||
echo "Database already exists: $db"
|
||||
else
|
||||
echo "Creating database: $db"
|
||||
psql_admin -c "CREATE DATABASE \"$db\" OWNER \"$PGUSER\" ENCODING 'UTF8';"
|
||||
fi
|
||||
}
|
||||
|
||||
enable_postgis_if_possible() {
|
||||
local db="$1"
|
||||
echo "Enabling PostGIS in database: $db"
|
||||
psql_db "$db" -c "CREATE EXTENSION IF NOT EXISTS postgis;"
|
||||
}
|
||||
|
||||
main() {
|
||||
echo "Target PostgreSQL: ${PGHOST}:${PGPORT}, user=${PGUSER}"
|
||||
|
||||
for db in "${DATABASES[@]}"; do
|
||||
create_database_if_missing "$db"
|
||||
done
|
||||
|
||||
for db in "${POSTGIS_DATABASES[@]}"; do
|
||||
enable_postgis_if_possible "$db"
|
||||
done
|
||||
|
||||
echo "Done. Databases are ready. Services will create their schemas via Flyway on startup."
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user