updated description of database preparation
Python Code Quality / python-code-quality (push) Successful in 15s
Hourly Energy Data Sync / sync-energy-data (push) Successful in 19s

This commit is contained in:
Brian Bjarke Jensen
2025-10-27 21:47:06 +01:00
parent 8752cce7ab
commit 171caea91e
2 changed files with 14 additions and 47 deletions
+14 -5
View File
@@ -56,12 +56,21 @@ energy-consumption-ingester/
4. **Set up PostgreSQL database:**
```bash
# Create database
createdb energy_consumption
# Connect to Postgres14 host
psql -U <POSTGRES_ADMIN> -h <POSTGERS_HOST> -p <POSTGERS_PORT>
# Create user (optional - run the script)
chmod +x scripts/create_db_user.sh
./scripts/create_db_user.sh
# Create database user
CREATE USER <DB_USER> WITH PASSWORD <DB_PASSWORD>;
# Create database
CREATE DATABASE <DB_NAME>;
# Grant full privileges on database to user
GRANT ALL PRIVILEGES ON DATABASE <DB_NAME> TO <DB_USER>;
# (Optional) verify new user and database creation
\q
psql -U <DB_USER> -h <POSTGRES_HOST> -p <POSTGERS_PORT>
```
## Configuration
-42
View File
@@ -1,42 +0,0 @@
#!/bin/bash
set -e # Exit immediately if a command exits with a non-zero status.
# --- 1. Set up Connection Variables ---
HOST=$POSTGRES_HOST
PORT=$POSTGRES_PORT
DB_NAME=$NEW_DB_NAME
DB_USER=$NEW_DB_USER
DB_PASSWORD=$NEW_DB_PASSWORD
# --- 2. Build the SQL Commands ---
# NOTE: The IF NOT EXISTS ensures the script can be run safely multiple times.
SQL_COMMANDS=$(cat <<-END_SQL
-- Create user role with login and password
DO
\$body\$
BEGIN
IF NOT EXISTS (
SELECT
FROM pg_catalog.pg_user
WHERE usename = '$DB_USER') THEN
CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASSWORD';
END IF;
END
\$body\$;
-- Create database owned by the new user (if it doesn't exist)
SELECT 'CREATE DATABASE $DB_NAME OWNER $DB_USER'
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = '$DB_NAME')\gexec
END_SQL
)
# --- 3. Execute the SQL Commands ---
echo "Attempting to connect to $HOST to execute SQL..."
echo "$SQL_COMMANDS" | psql \
--host=$HOST \
--port=$PORT \
--username=$POSTGRES_ADMIN_USER \
--dbname=postgres \
--set ON_ERROR_STOP=on
echo "PostgreSQL database '$DB_NAME' and user '$DB_USER' created/verified successfully."