fast_api_whatsappbot/app/DatabaseConnection.py
2024-08-01 19:33:35 +03:00

37 lines
1.2 KiB
Python

from dotenv import load_dotenv
import os
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy_utils import database_exists, create_database
load_dotenv()
user = os.getenv("MYSQLUSER", default="root")
password = os.getenv("MYSQLPASSWORD", default="root")
host = os.getenv("MYSQLHOST", default="localhost")
port = os.getenv("MYSQLPORT", default="3306")
db = os.getenv("MYSQLDATABASE", default="moses")
MYSQL_URL = os.getenv("MYSQL_URL", default=None)
print(f"MYSQL_URL: '{MYSQL_URL}'")
SQLALCHEMY_DATABASE_URL = f'mysql+pymysql://{user}:{password}@{host}:{port}/{db}'
if MYSQL_URL is None:
print("Local mysql database")
else:
print("From Server database mysql")
print(f"Full Sql alchemy connection string: '{SQLALCHEMY_DATABASE_URL}'")
engine = create_engine(SQLALCHEMY_DATABASE_URL)
if not database_exists(engine.url):
print("New Data Base were created!")
create_database(engine.url)
else:
# Connect the database if exists.
print("Data Base exist!")
engine.connect()
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
Base = declarative_base()