Better SQL connection settings
This commit is contained in:
@@ -26,6 +26,10 @@ class Settings(BaseSettings):
|
||||
DB['username'] = ''
|
||||
DB['password'] = ''
|
||||
SQLALCHEMY_DB_URI = 'mysql://'+DB['username']+':'+DB['password']+'@'+DB['server']+'/'+DB['name']
|
||||
|
||||
DB['wait_timeout'] = int(os.getenv('AE_DB_WAIT_TIMEOUT', 1800)) # default = 28800; Time (seconds) that the server waits for a connection to become active before closing it.
|
||||
DB['connect_timeout'] = int(os.getenv('AE_DB_CONNECTION_TIMEOUT', 20)) # default = 10; Time (seconds) that the server waits for a connection to become active before closing it.
|
||||
DB['pool_recycle'] = int(os.getenv('AE_DB_POOL_RECYCLE', 1800)) # default = ?; Related to SQLAlchemy
|
||||
|
||||
|
||||
# Aether API log files paths
|
||||
|
||||
@@ -10,8 +10,12 @@ from sqlalchemy.exc import IntegrityError, OperationalError
|
||||
|
||||
db_uri = settings.SQLALCHEMY_DB_URI
|
||||
|
||||
# log.setLevel(logging.DEBUG)
|
||||
# log.debug(settings.DB)
|
||||
# log.setLevel(logging.INFO)
|
||||
|
||||
connection_string = db_uri
|
||||
engine = create_engine(url=connection_string, pool_size=3, max_overflow=15, pool_recycle=3600, pool_pre_ping=True, echo=False, echo_pool=True, isolation_level='READ COMMITTED', connect_args={'connect_timeout': 30})
|
||||
engine = create_engine(url=connection_string, pool_size=3, max_overflow=15, pool_recycle=settings.DB['pool_recycle'], pool_pre_ping=True, echo=False, echo_pool=True, isolation_level='READ COMMITTED', connect_args={'connect_timeout': settings.DB['connect_timeout']})
|
||||
# NOTE: The default isolation_level is 'REPEATABLE READ'. This can sometimes not show updated data.
|
||||
# NOTE: The "echo" set to True option shows the SQL queries.
|
||||
|
||||
@@ -55,7 +59,7 @@ def sql_connect(
|
||||
settings.SQLALCHEMY_DB_URI = 'mysql://'+DB['username']+':'+DB['password']+'@'+DB['server']+'/'+DB['name']
|
||||
log.debug(settings.DB)
|
||||
|
||||
new_engine = create_engine(url=settings.SQLALCHEMY_DB_URI, pool_size=5, max_overflow=10, pool_recycle=3600, pool_pre_ping=True, echo=False, echo_pool=True, isolation_level='READ COMMITTED', connect_args={'connect_timeout': 30})
|
||||
new_engine = create_engine(url=settings.SQLALCHEMY_DB_URI, pool_size=5, max_overflow=10, pool_recycle=settings.DB['pool_recycle'], pool_pre_ping=True, echo=False, echo_pool=True, isolation_level='READ COMMITTED', connect_args={'connect_timeout': settings.DB['connect_timeout']})
|
||||
|
||||
current_db.engine = new_engine
|
||||
log.info(f'Created and connected to database: {settings.SQLALCHEMY_DB_URI}')
|
||||
|
||||
Reference in New Issue
Block a user