32 lines
1007 B
Python
32 lines
1007 B
Python
from app.models import db
|
|
from sqlalchemy.exc import SQLAlchemyError
|
|
from flask import current_app
|
|
def safe_commit():
|
|
"""安全提交数据库更改"""
|
|
try:
|
|
db.session.commit()
|
|
return True, None
|
|
except SQLAlchemyError as e:
|
|
db.session.rollback()
|
|
current_app.logger.error(f"Database commit error: {e}")
|
|
return False, str(e)
|
|
def safe_add_and_commit(obj):
|
|
"""安全添加并提交对象"""
|
|
try:
|
|
db.session.add(obj)
|
|
db.session.commit()
|
|
return True, None
|
|
except SQLAlchemyError as e:
|
|
db.session.rollback()
|
|
current_app.logger.error(f"Database add error: {e}")
|
|
return False, str(e)
|
|
def safe_delete_and_commit(obj):
|
|
"""安全删除并提交对象"""
|
|
try:
|
|
db.session.delete(obj)
|
|
db.session.commit()
|
|
return True, None
|
|
except SQLAlchemyError as e:
|
|
db.session.rollback()
|
|
current_app.logger.error(f"Database delete error: {e}")
|
|
return False, str(e) |