58 lines
2.4 KiB
Python
58 lines
2.4 KiB
Python
from sqlalchemy import BigInteger, Column, Integer, SmallInteger, String, Text, TIMESTAMP, text
|
|
from sqlalchemy.dialects.postgresql import JSONB
|
|
from sqlalchemy.ext.declarative import declarative_base
|
|
|
|
from common.sqlSession import to_dict
|
|
|
|
Base = declarative_base()
|
|
Base.to_dict = to_dict
|
|
|
|
|
|
class Bug(Base):
|
|
__tablename__ = 'bug'
|
|
id = Column(BigInteger, primary_key=True, autoincrement=True)
|
|
bug_key = Column(String(64), nullable=False, unique=True)
|
|
title = Column(String(256), nullable=False)
|
|
description = Column(Text)
|
|
bug_type = Column(SmallInteger, nullable=False, default=1)
|
|
severity = Column(SmallInteger, nullable=False, default=2)
|
|
priority = Column(SmallInteger, nullable=False, default=2)
|
|
status = Column(SmallInteger, nullable=False, default=0)
|
|
assignee_id = Column(BigInteger)
|
|
reporter_id = Column(BigInteger, nullable=False)
|
|
product_id = Column(BigInteger, nullable=False)
|
|
project_id = Column(BigInteger, nullable=False)
|
|
module_id = Column(BigInteger)
|
|
case_id = Column(BigInteger)
|
|
plan_id = Column(BigInteger)
|
|
environment = Column(String(64))
|
|
steps = Column(Text)
|
|
solution = Column(Text)
|
|
resolve_version = Column(String(64))
|
|
resolved_by = Column(BigInteger)
|
|
reproduce_rate = Column(SmallInteger)
|
|
attachments = Column(JSONB, server_default=text("'[]'::jsonb"))
|
|
is_delete = Column(Integer, default=0)
|
|
created_time = Column(TIMESTAMP, server_default=text('CURRENT_TIMESTAMP'), nullable=True)
|
|
updated_time = Column(TIMESTAMP, server_default=text('CURRENT_TIMESTAMP'), server_onupdate=text('CURRENT_TIMESTAMP'), nullable=True)
|
|
|
|
|
|
class BugComment(Base):
|
|
__tablename__ = 'bug_comment'
|
|
id = Column(BigInteger, primary_key=True, autoincrement=True)
|
|
bug_id = Column(BigInteger, nullable=False)
|
|
content = Column(Text, nullable=False)
|
|
user_id = Column(BigInteger, nullable=False)
|
|
is_delete = Column(Integer, default=0)
|
|
created_time = Column(TIMESTAMP, server_default=text('CURRENT_TIMESTAMP'), nullable=True)
|
|
|
|
|
|
class BugHistory(Base):
|
|
__tablename__ = 'bug_history'
|
|
id = Column(BigInteger, primary_key=True, autoincrement=True)
|
|
bug_id = Column(BigInteger, nullable=False)
|
|
field_name = Column(String(64), nullable=False)
|
|
old_value = Column(String(512))
|
|
new_value = Column(String(512))
|
|
operator_id = Column(BigInteger, nullable=False)
|
|
created_time = Column(TIMESTAMP, server_default=text('CURRENT_TIMESTAMP'), nullable=True) |