Files
shop10/scripts/setup-postgres-ubuntu.sh
T
shop 7060b0566a feat: PostgreSQL 17 вместо SQLite
pg + connect-pg-simple, async routes, docker-compose, скрипт setup-postgres.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-17 09:32:41 +03:00

33 lines
914 B
Bash

#!/bin/bash
# PostgreSQL 17 на Ubuntu — пользователь и БД для магазина
# Запуск: sudo bash scripts/setup-postgres-ubuntu.sh
set -euo pipefail
DB_USER="${DB_USER:-shop}"
DB_PASS="${DB_PASS:-shop}"
DB_NAME="${DB_NAME:-shop}"
if ! command -v psql >/dev/null; then
echo "Установите PostgreSQL 17:"
echo " apt install -y postgresql-17 postgresql-client-17"
exit 1
fi
sudo -u postgres psql -v ON_ERROR_STOP=1 <<EOF
DO \$\$
BEGIN
IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = '${DB_USER}') THEN
CREATE ROLE ${DB_USER} LOGIN PASSWORD '${DB_PASS}';
END IF;
END
\$\$;
SELECT 'CREATE DATABASE ${DB_NAME} OWNER ${DB_USER}'
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = '${DB_NAME}')\gexec
GRANT ALL PRIVILEGES ON DATABASE ${DB_NAME} TO ${DB_USER};
EOF
echo ""
echo "DATABASE_URL=postgresql://${DB_USER}:${DB_PASS}@127.0.0.1:5432/${DB_NAME}"