35 lines
958 B
Python
35 lines
958 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_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")
|
|
|
|
|