From 67a794f4f1fed385ff57f8f4488d9bf1ee1e0df4 Mon Sep 17 00:00:00 2001 From: 283375 Date: Thu, 14 Sep 2023 18:41:36 +0800 Subject: [PATCH] feat(db): record classify timestamp --- dbModels.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/dbModels.py b/dbModels.py index 4752b32..642afbf 100644 --- a/dbModels.py +++ b/dbModels.py @@ -1,4 +1,6 @@ -from sqlalchemy import CHAR, TEXT +from datetime import datetime + +from sqlalchemy import CHAR, TEXT, TIMESTAMP, text, event, DDL from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column @@ -27,3 +29,23 @@ class ClassifiedSample(ProjectBase): "sample_numpy_md5", CHAR(32), primary_key=True, unique=True ) tag: Mapped[str] = mapped_column(TEXT(), primary_key=True) + timestamp: Mapped[datetime] = mapped_column( + TIMESTAMP(), server_default=text("CURRENT_TIMESTAMP") + ) + + +event.listen( + ClassifiedSample.__table__, + "after_create", + DDL( + """ + CREATE TRIGGER IF NOT EXISTS update_classified_samples_timestamp + UPDATE OF sample_numpy_md5, tag + ON classified_samples + BEGIN + UPDATE classified_samples + SET timestamp = CURRENT_TIMESTAMP + WHERE sample_numpy_md5 = old.sample_numpy_md5; + END;""" + ), +)