# -------------------------------------------------------------------------
# This file is part of the MindStudio project.
# Copyright (c) 2025 Huawei Technologies Co.,Ltd.
#
# MindStudio is licensed under Mulan PSL v2.
# You can use this software according to the terms and conditions of the Mulan PSL v2.
# You may obtain a copy of Mulan PSL v2 at:
#
# http://license.coscl.org.cn/MulanPSL2
#
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# -------------------------------------------------------------------------
from datetime import datetime
import pytz
from sqlalchemy import Column, Integer, DateTime
from sqlalchemy.orm import declarative_base
Base = declarative_base()
def get_current_time():
return datetime.now(pytz.timezone('Asia/Shanghai'))
class BaseDb(Base):
__abstract__ = True
id = Column(Integer, primary_key=True, autoincrement=True) # 主键
created_time = Column(
DateTime(timezone=True),
)
updated_time = Column(
DateTime(timezone=True),
onupdate=get_current_time
)
def __init__(self, **kwargs):
now = get_current_time()
kwargs.setdefault("created_time", now)
kwargs.setdefault("updated_time", now)
super().__init__(**kwargs)