-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path__init__.py
More file actions
37 lines (32 loc) · 1009 Bytes
/
__init__.py
File metadata and controls
37 lines (32 loc) · 1009 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import os
from urllib.parse import quote
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
DB_ROOT_USER = os.getenv("DB_ROOT_USER", "root")
DB_ROOT_PASSWD = os.getenv("DB_ROOT_PASSWD")
DB_USER = os.getenv("DB_USER")
DB_PASSWD = os.getenv("DB_PASSWD")
db_user = ""
db_passwd = ""
if DB_USER:
db_user = DB_USER
db_passwd = DB_PASSWD
else:
db_user = "root"
db_passwd = DB_ROOT_PASSWD
DB_HOST = os.getenv("DB_HOST", "seatable-mysql")
DB_PORT = os.getenv("DB_PORT", "3306")
DATABASE_NAME = os.getenv("DATABASE_NAME", "scheduler")
# DBSession for flask and scheduler
db_url = "mysql+pymysql://%s:%s@%s:%s/%s?charset=utf8mb4" % (
quote(db_user),
quote(db_passwd),
quote(DB_HOST),
quote(DB_PORT),
quote(DATABASE_NAME),
)
db_kwargs = dict(pool_recycle=300, echo=False, echo_pool=False)
engine = create_engine(db_url, **db_kwargs)
Base = declarative_base()
DBSession = sessionmaker(bind=engine)