diff --git a/app/.config.py.kate-swp b/app/.config.py.kate-swp new file mode 100644 index 0000000..ee6f04e Binary files /dev/null and b/app/.config.py.kate-swp differ diff --git a/app/db_sql.py b/app/db_sql.py index 9b2cbf5..c789042 100644 --- a/app/db_sql.py +++ b/app/db_sql.py @@ -8,7 +8,7 @@ from sqlalchemy import create_engine, text, Time from sqlalchemy.exc import IntegrityError, OperationalError -db_uri = settings.SQLALCHEMY_DATABASE_URI +db_uri = settings.SQLALCHEMY_DB_URI connection_string = db_uri engine = create_engine(url=connection_string, pool_size=25, pool_recycle=60, pool_pre_ping=True, echo=False, echo_pool=True, isolation_level='READ COMMITTED') @@ -22,6 +22,57 @@ db = engine.connect() # log.debug(vars(db)) # log.debug(dir(db)) +def sql_connect(current_db): + log.setLevel(logging.DEBUG) + log.debug(locals()) + + # log.info('Trying to recreate the pool...') + log.info('Trying to create a new engine (connection pool)...') + log.debug('############## ############') + log.debug(dir(current_db)) + log.debug(vars(current_db)) + log.debug('############## ############') + log.debug(dir(current_db.engine)) + log.debug(vars(current_db.engine)) + log.debug('############## ############') + log.debug(dir(current_db.engine.pool)) + log.debug(vars(current_db.engine.pool)) + log.debug('############## ############') + + if current_db: + DB = settings.DB + settings.SQLALCHEMY_DB_URI = 'mysql://'+DB['username']+':'+DB['password']+'@'+DB['server']+'/'+DB['name'] + + new_engine = create_engine(url=settings.SQLALCHEMY_DB_URI, pool_size=25, pool_recycle=60, pool_pre_ping=True, echo=False, echo_pool=True, isolation_level='READ COMMITTED') + + current_db.engine = new_engine + + + # current_db.engine.dispose() + # db.engine.dispose() + + # log.debug(db_uri) + + # DB = settings.DB + # settings.SQLALCHEMY_DB_URI = 'mysql://'+DB['username']+':'+DB['password']+'@'+DB['server']+'/'+DB['name'] + + # # log.debug(settings.SQLALCHEMY_DB_URI) + + # new_engine = create_engine(url=settings.SQLALCHEMY_DB_URI, pool_size=25, pool_recycle=60, pool_pre_ping=True, echo=False, echo_pool=True, isolation_level='READ COMMITTED') + + # current_db.engine = new_engine.connect() + return True + + # current_db.engine.update_url(settings.SQLALCHEMY_DB_URI) + # return current_db + + + # engine.connect() + + # db.engine = engine + # db = engine.connect() + # return db + # #### ### ## # BEGIN SQL # ## ### #### # Create, Read/Get, Update, Delete @@ -577,18 +628,20 @@ def sql_select( log.exception('**** *** ** * ### BEGIN ### Operational Exception Happened: Trying again... * ** *** ****') log.error('^^^^ ^^^ ^^ ^ ### END ### Operational Exception ^ ^^ ^^^ ^^^^') - log.info('Trying to recreate the pool...') - log.debug('############## ############') - log.debug(dir(db)) - log.debug(vars(db)) - log.debug('############## ############') - log.debug(dir(db.engine)) - log.debug(vars(db.engine)) - log.debug('############## ############') - log.debug(dir(db.engine.pool)) - log.debug(vars(db.engine.pool)) - log.debug('############## ############') - db.engine.dispose() + sql_connect(current_db=db) + + # log.info('Trying to recreate the pool...') + # log.debug('############## ############') + # log.debug(dir(db)) + # log.debug(vars(db)) + # log.debug('############## ############') + # log.debug(dir(db.engine)) + # log.debug(vars(db.engine)) + # log.debug('############## ############') + # log.debug(dir(db.engine.pool)) + # log.debug(vars(db.engine.pool)) + # log.debug('############## ############') + # db.engine.dispose() log.info('Now trying the query again...') try: if data: @@ -778,18 +831,20 @@ def sql_delete( log.exception('**** *** ** * ### BEGIN ### Operational Exception Happened: Trying again... * ** *** ****') log.error('^^^^ ^^^ ^^ ^ ### END ### Operational Exception ^ ^^ ^^^ ^^^^') - log.info('Trying to recreate the pool...') - log.debug('############## ############') - log.debug(dir(db)) - log.debug(vars(db)) - log.debug('############## ############') - log.debug(dir(db.engine)) - log.debug(vars(db.engine)) - log.debug('############## ############') - log.debug(dir(db.engine.pool)) - log.debug(vars(db.engine.pool)) - log.debug('############## ############') - db.engine.dispose() + sql_connect(current_db=db) + + # log.info('Trying to recreate the pool...') + # log.debug('############## ############') + # log.debug(dir(db)) + # log.debug(vars(db)) + # log.debug('############## ############') + # log.debug(dir(db.engine)) + # log.debug(vars(db.engine)) + # log.debug('############## ############') + # log.debug(dir(db.engine.pool)) + # log.debug(vars(db.engine.pool)) + # log.debug('############## ############') + # db.engine.dispose() log.info('Now trying the query again...') try: # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL diff --git a/app/lib_general.py b/app/lib_general.py index 34d9677..374030d 100644 --- a/app/lib_general.py +++ b/app/lib_general.py @@ -174,7 +174,7 @@ def create_export_file( log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.debug(locals()) - hosted_tmp_path = settings.PATH_HOSTED_TMP_ROOT + hosted_tmp_path = settings.FILES_PATH['hosted_tmp_root'] # hosted_tmp_path = 'admin/temp' log.info(f'Hosted Temp Path: {hosted_tmp_path}') @@ -239,7 +239,7 @@ def return_full_tmp_path( log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.debug(locals()) - hosted_tmp_path = settings.PATH_HOSTED_TMP_ROOT + hosted_tmp_path = settings.FILES_PATH['hosted_tmp_root'] # hosted_tmp_path = 'admin/temp' log.info(f'Hosted Temp Path: {hosted_tmp_path}') diff --git a/app/main.py b/app/main.py index c14a619..3538479 100644 --- a/app/main.py +++ b/app/main.py @@ -20,7 +20,7 @@ from app.log import log, logging # Import the routers here first: from app.routers import api_crud, api, importing, sql, account, activity_log, address, archive, archive_content, contact, cont_edu_cert, cont_edu_cert_person, data_store, event, event_badge, event_badge_template, event_device, event_exhibit, event_exhibit_tracking, event_file, event_importing, event_location, event_person, event_person_detail, event_person_tracking, event_presentation, event_presenter, event_registration, event_session, flask_cfg, hosted_file, journal, journal_entry, log_client_viewing, lookup, membership_cfg, membership_group, membership_person_group, membership_person, membership_person_profile, membership_type, membership_person_type, order, order_v3, order_line, order_cart, organization, page, person, person_user, post, post_comment, product, qr, site, site_domain, user, websockets, e_cvent, c_idaa, e_impexium -from app.db_sql import db, sql_select +from app.db_sql import db, sql_select # , sql_connect print('### **** *** ** * The Aether FastAPI API is loading... * ** *** **** ###') @@ -41,26 +41,34 @@ app = FastAPI( ) -log.setLevel(logging.DEBUG) -log.debug(config.settings) -if aether_cfg_sql_result := sql_select(table_name='cfg', record_id=1, as_list=False, max_count=1): +# log.setLevel(logging.INFO) +# log.debug(config.settings) + +if aether_cfg_sql_result := sql_select( + table_name = 'cfg', + record_id = config.settings.AETHER_CFG['id'], + as_list = False, + max_count = 1 + ): aether_cfg_sql = aether_cfg_sql_result - # log.info(config.settings.APP_NAME) - log.debug(aether_cfg_sql_result.get('name')) - config.settings.test = 'test value for test' - config.settings.DB_SERVER = aether_cfg_sql.get('db_server') - config.settings.DB_PORT = aether_cfg_sql.get('db_port') - config.settings.DB_NAME = aether_cfg_sql.get('db_name') - config.settings.DB_USERNAME = aether_cfg_sql.get('db_username') - config.settings.DB_PASSWORD = aether_cfg_sql.get('db_password') + + config.settings.DB['server'] = aether_cfg_sql.get('db_server') + config.settings.DB['port'] = aether_cfg_sql.get('db_port') + config.settings.DB['name'] = aether_cfg_sql.get('db_name') + config.settings.DB['username'] = aether_cfg_sql.get('db_username') + config.settings.DB['password'] = aether_cfg_sql.get('db_password') + + DB = config.settings.DB + config.settings.SQLALCHEMY_DB_URI = 'mysql://'+DB['username']+':'+DB['password']+'@'+DB['server']+'/'+DB['name'] + # db_result = sql_connect(config.settings.SQLALCHEMY_DB_URI) config.settings.SMTP['server'] = aether_cfg_sql.get('smtp_server') config.settings.SMTP['port'] = aether_cfg_sql.get('smtp_port') config.settings.SMTP['username'] = aether_cfg_sql.get('smtp_username') config.settings.SMTP['password'] = aether_cfg_sql.get('smtp_password') - # config.settings.PATH_HOSTED_FILES_ROOT = aether_cfg_sql.get('PATH_HOSTED_FILES_ROOT') - # config.settings.PATH_HOSTED_TMP_ROOT = aether_cfg_sql.get('PATH_HOSTED_TMP_ROOT') + # config.settings.FILES_PATH['hosted_files_root'] = aether_cfg_sql.get('PATH_HOSTED_FILES_ROOT') + # config.settings.FILES_PATH['hosted_tmp_root'] = aether_cfg_sql.get('PATH_HOSTED_TMP_ROOT') config.settings.FILES_PATH['hosted_files_root'] = aether_cfg_sql.get('path_hosted_files_root') config.settings.FILES_PATH['hosted_tmp_root'] = aether_cfg_sql.get('path_hosted_tmp_root') diff --git a/app/routers/event_file.py b/app/routers/event_file.py index 6050921..a67d134 100644 --- a/app/routers/event_file.py +++ b/app/routers/event_file.py @@ -143,7 +143,7 @@ async def download_event_file( if event_file_id := redis_lookup_id_random(record_id_random=event_file_id, table_name='event_file'): pass else: return mk_resp(data=None, status_code=404, response=commons.response, status_message='The event_file ID was invalid or not found.') - hosted_files_path = settings.PATH_HOSTED_FILES_ROOT + hosted_files_path = settings.FILES_PATH['hosted_files_root'] log.info(f'Hosted Files Path: {hosted_files_path}') if event_file_obj := load_event_file_obj( diff --git a/app/routers/qr.py b/app/routers/qr.py index 6b33cb0..ccde56a 100644 --- a/app/routers/qr.py +++ b/app/routers/qr.py @@ -79,7 +79,7 @@ async def get_qr( if account_id := redis_lookup_id_random(record_id_random=account_id_random, table_name='account'): pass else: return mk_resp(data=None, status_code=404, response=response, status_message='The account ID was invalid or not found.') - hosted_tmp_root_path = settings.PATH_HOSTED_TMP_ROOT + hosted_tmp_root_path = settings.FILES_PATH['hosted_tmp_root'] log.info(f'Hosted Tmp Root Path: {hosted_tmp_root_path}') if os.path.exists(hosted_tmp_root_path):