294b17757d
Отказ от остаточной 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. Включает также прочие незакоммиченные правки рабочего дерева.
87 lines
1.8 KiB
Bash
Executable File
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 "$@"
|