weather_api/db_connector.py
Argiris Deligiannidis 520f104c61
All checks were successful
continuous-integration/drone/push Build is passing
Code Formmating, set DB_REBUILD env variable
2024-04-07 13:43:07 +03:00

32 lines
991 B
Python

import os
from dotenv import load_dotenv
from sqlalchemy.orm import declarative_base
from sqlalchemy import create_engine
from sqlalchemy.exc import SQLAlchemyError
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy_utils import database_exists, create_database
#NOTE: Load environment variables from .env file
load_dotenv()
DATABASE = os.getenv('DATABASE')
DB_HOST = os.getenv('DB_HOST')
DB_USER = os.getenv('DB_USER')
DB_PASS = os.getenv('DB_PASS')
DB_REBUILD = os.getenv('DB_REBUILD')
DB_URI="postgresql://{}:{}@{}/{}".format(DB_USER, DB_PASS, DB_HOST, DATABASE) #, echo=True)
engine=create_engine(DB_URI)
database=declarative_base()
db_session=scoped_session(sessionmaker(bind=engine))
if not database_exists(engine.url):
create_database(engine.url)
try:
connection = engine.connect()
print("\n\t\tConnected successfully to database: {}@{}\n".format(DATABASE, DB_HOST))
except SQLAlchemyError as err:
print("\n\t\terror", err.__cause__, "\n")