Better SQL connection settings
This commit is contained in:
@@ -26,6 +26,10 @@ class Settings(BaseSettings):
|
|||||||
DB['username'] = ''
|
DB['username'] = ''
|
||||||
DB['password'] = ''
|
DB['password'] = ''
|
||||||
SQLALCHEMY_DB_URI = 'mysql://'+DB['username']+':'+DB['password']+'@'+DB['server']+'/'+DB['name']
|
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
|
# Aether API log files paths
|
||||||
|
|||||||
@@ -10,8 +10,12 @@ from sqlalchemy.exc import IntegrityError, OperationalError
|
|||||||
|
|
||||||
db_uri = settings.SQLALCHEMY_DB_URI
|
db_uri = settings.SQLALCHEMY_DB_URI
|
||||||
|
|
||||||
|
# log.setLevel(logging.DEBUG)
|
||||||
|
# log.debug(settings.DB)
|
||||||
|
# log.setLevel(logging.INFO)
|
||||||
|
|
||||||
connection_string = db_uri
|
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 default isolation_level is 'REPEATABLE READ'. This can sometimes not show updated data.
|
||||||
# NOTE: The "echo" set to True option shows the SQL queries.
|
# 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']
|
settings.SQLALCHEMY_DB_URI = 'mysql://'+DB['username']+':'+DB['password']+'@'+DB['server']+'/'+DB['name']
|
||||||
log.debug(settings.DB)
|
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
|
current_db.engine = new_engine
|
||||||
log.info(f'Created and connected to database: {settings.SQLALCHEMY_DB_URI}')
|
log.info(f'Created and connected to database: {settings.SQLALCHEMY_DB_URI}')
|
||||||
|
|||||||
Reference in New Issue
Block a user