Files
dc-observatio/create_pcp_databases.sh
T
Дмитрий Соловьев 294b17757d pcp: время — сквозной naive LocalDateTime как локальное настенное время (без UTC)
Отказ от остаточной UTC-семантики: naive LocalDateTime трактуется как
локальное время единой зоны всех сервисов.

Backend (границы внешних систем):
- VisibilityPayloadParser, SyncSpacecraftFromNsiUseCase: ZoneOffset.UTC →
  ZoneId.systemDefault() для проекции внешних Instant/ISO-с-Z в naive.
- тесты границ перевёрнуты на systemDefault (под Europe/Moscow ждут +3).
- чистка UTC-формулировок в DTO-комментариях, мёртвых ссылок на
  docs/standards/DATETIME_UTC.md.

Frontend (pcp-tgu-ops-ui):
- utils/utcTime.ts → utils/localTime.ts: parseLocal/formatLocal*/toLocalIso/
  toLocalInputValue с локальной семантикой (без дописывания Z и timeZone:UTC).
- замена getUTC*/Date.UTC/toISOString-сериализации на локальные аналоги.
- убраны пользовательские подписи «UTC» в редакторе/таймлайне.
- удалён utcTime.guard.test.ts (форсил обратный UTC-инвариант); тест-фикстуры
  сделаны зоно-независимыми. tsc + vitest зелёные под TZ=UTC и TZ=Europe/Moscow.

Включает также прочие незакоммиченные правки рабочего дерева.
2026-06-04 09:50:39 +03:00

87 lines
1.8 KiB
Bash
Executable File

#!/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.60.201}"
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 "$@"