Skip to content

Commit

Permalink
#17 add handler with logic to create db
Browse files Browse the repository at this point in the history
  • Loading branch information
kunduso committed Sep 20, 2024
1 parent 272a767 commit a5c216a
Showing 1 changed file with 54 additions and 0 deletions.
54 changes: 54 additions & 0 deletions manage_db_user/handler.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import os
import psycopg2
import boto3

def lambda_handler(event, context):
# Retrieve database connection details from environment variables
host = os.environ['DB_HOST']
port = os.environ['DB_PORT']
user = os.environ['DB_USER']
password = os.environ['DB_PASSWORD']

# Name of the new database to create
new_db_name = 'ItemDB'

try:
# Connect to the default 'postgres' database
conn = psycopg2.connect(
host=host,
port=port,
user=user,
password=password,
database='postgres'
)
conn.autocommit = True

# Create a cursor
cur = conn.cursor()

# Check if the database already exists
cur.execute(f"SELECT 1 FROM pg_database WHERE datname = '{new_db_name}'")
exists = cur.fetchone()

if not exists:
# Create the new database
cur.execute(f'CREATE DATABASE "{new_db_name}"')
print(f"Database '{new_db_name}' created successfully")
else:
print(f"Database '{new_db_name}' already exists")

# Close the cursor and connection
cur.close()
conn.close()

return {
'statusCode': 200,
'body': f"Database operation for '{new_db_name}' completed successfully"
}

except Exception as e:
print(f"Error: {str(e)}")
return {
'statusCode': 500,
'body': f"An error occurred: {str(e)}"
}

0 comments on commit a5c216a

Please sign in to comment.