Niansuh commited on
Commit
a096efd
·
verified ·
1 Parent(s): a8df8d6

Update database.py

Browse files
Files changed (1) hide show
  1. database.py +24 -6
database.py CHANGED
@@ -1,4 +1,5 @@
1
  # database.py
 
2
  from sqlalchemy import create_engine
3
  from sqlalchemy.ext.declarative import declarative_base
4
  from sqlalchemy.orm import sessionmaker
@@ -8,12 +9,14 @@ from dotenv import load_dotenv
8
  # Load environment variables from .env file
9
  load_dotenv()
10
 
11
- MYSQL_HOST = os.getenv("MYSQL_HOST")
12
- MYSQL_PORT = os.getenv("MYSQL_PORT")
13
- MYSQL_DATABASE = os.getenv("MYSQL_DATABASE")
14
- MYSQL_USER = os.getenv("MYSQL_USER")
15
- MYSQL_PASSWORD = os.getenv("MYSQL_PASSWORD")
 
16
 
 
17
  DATABASE_URL = f"mysql+pymysql://{MYSQL_USER}:{MYSQL_PASSWORD}@{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DATABASE}"
18
 
19
  # Create SQLAlchemy engine
@@ -26,5 +29,20 @@ engine = create_engine(
26
  # Create a configured "Session" class
27
  SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
28
 
29
- # Base class for models
30
  Base = declarative_base()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  # database.py
2
+
3
  from sqlalchemy import create_engine
4
  from sqlalchemy.ext.declarative import declarative_base
5
  from sqlalchemy.orm import sessionmaker
 
9
  # Load environment variables from .env file
10
  load_dotenv()
11
 
12
+ # Retrieve database connection details from environment variables
13
+ MYSQL_HOST = os.getenv("MYSQL_HOST", "db") # Default to 'db' if not set
14
+ MYSQL_PORT = os.getenv("MYSQL_PORT", "3306")
15
+ MYSQL_DATABASE = os.getenv("MYSQL_DATABASE", "bbapi")
16
+ MYSQL_USER = os.getenv("MYSQL_USER", "bbapi")
17
+ MYSQL_PASSWORD = os.getenv("MYSQL_PASSWORD", "QQQR5dKS8NYGnYcC")
18
 
19
+ # Construct the database URL
20
  DATABASE_URL = f"mysql+pymysql://{MYSQL_USER}:{MYSQL_PASSWORD}@{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DATABASE}"
21
 
22
  # Create SQLAlchemy engine
 
29
  # Create a configured "Session" class
30
  SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
31
 
32
+ # Base class for your ORM models
33
  Base = declarative_base()
34
+
35
+ # Dependency to get a database session
36
+ from fastapi import Depends
37
+ from sqlalchemy.orm import Session
38
+
39
+ def get_db():
40
+ """
41
+ Dependency that provides a SQLAlchemy session.
42
+ Ensures the session is closed after the request is completed.
43
+ """
44
+ db = SessionLocal()
45
+ try:
46
+ yield db
47
+ finally:
48
+ db.close()