7060b0566a
pg + connect-pg-simple, async routes, docker-compose, скрипт setup-postgres. Co-authored-by: Cursor <cursoragent@cursor.com>
33 lines
914 B
Bash
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}"
|