37 lines
1.2 KiB
Python
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()
|