У меня возникают проблемы при попытке увидеть, где происходит сбой при выполнении хранимой процедуры с использованием peewee в python.
Код:
def call_procedure(body):
"""
Function that makes the call to the stored procedure
:return: tuple int, string
"""
try:
DATABASE = "SOME_DB"
HOST = "HOST"
PORT = 3306
USER = "USER"
PASS = "PASS"
db = peewee.MySQLDatabase(
DATABASE, host=HOST, port=PORT, user=USER, password=PASS
)
# call procedure
success = 0
message = ""
procedure_params = [
body["Id"],
body["paymentNumber"],
body["status"],
success,
message,
]
cursor = db.cursor()
cursor.callproc(FAILED_PAYMENT_PROCESS, procedure_params)
cursor.execute(
"SELECT @_{}_4, @_{}_3".format(
STORED_PROCESS, STORED_PROCESS
)
)
cursor_call = cursor.fetchall()
message = cursor_call[0][0]
success = cursor_call[0][1]
db.close()
print(
f"call procedure returned :: success:{success}, message:{message}
)
return success, message
except (Exception, peewee.OperationalError) as ex:
logger.error(
"DB OperationalError Exception reason: {}".format(
str(ex)
)
)
print("DB OperationalError Exception {}".format(str(ex)))
Но печатается это сообщение :
call procedure returned :: success:0, message:None
Хранимая процедура должна возвращать сообщение, если процесс не был успешным и причина, но, как вы можете видеть, она не возвращает ни одного, функция также не выдает исключение.
Как я могу отладить вызов хранимой процедуры?
Является ли peewee.OperationalError
правильным способом отловить ошибку?