feat: PostgreSQL 17 вместо SQLite
pg + connect-pg-simple, async routes, docker-compose, скрипт setup-postgres. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
#!/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}"
|
||||
Reference in New Issue
Block a user