【发布时间】:2022-08-06 20:35:42
【问题描述】:
我想维护数据库更改的审核日志(如果发生任何更新,则将先前的状态插入日志表
下面是我写的代码
from sqlalchemy import create_engine
from sqlalchemy import event
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String, DateTime
from datetime import datetime
from sqlalchemy.orm import sessionmaker
engine = create_engine(\'mysql+pymysql://root:p4ssw0rd@0.0.0.0:33061/error_details\')
Base = declarative_base()
Base.metadata.create_all(engine)
Session = sessionmaker()
Session.configure(bind=engine)
session = Session()
class User(Base):
__tablename__ = \"users\"
id = Column(Integer, primary_key=True)
name = Column(String(10))
def __repr__(self):
return f\"User(name={self.name}, id={self.id})\"
class User_Log(Base):
__tablename__ = \"users_log\"
id = Column(Integer, primary_key=True)
name = Column(String(10))
modified_on = Column(DateTime, default=datetime.utcnow)
action = Column(String(10))
@event.listens_for(User, \'before_update\')
def update_user_log(mapper, connection, target):
print(\"func() called \")
session.query(User).filter(User.id == 2).update({User.name: \"ankit--\"})
session.commit()
没有调用函数 update_user_log
注意 - 我只想在 sqlalchemy 中执行数据库审计日志
标签: python sqlalchemy