database.py 2.56 KB
Newer Older
wanli's avatar
wanli committed
1 2 3
'''
Author: your name
Date: 2021-06-28 16:43:12
wanli's avatar
wanli committed
4
LastEditTime: 2021-06-29 17:06:11
wanli's avatar
wanli committed
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
LastEditors: Please set LastEditors
Description: In User Settings Edit
FilePath: \ewebengine\tools\evm_monitor\database.py
'''
from datetime import datetime
from sqlalchemy import create_engine
from sqlalchemy import Column, Integer, String, Float
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

engine = create_engine('sqlite:///monitor.db?check_same_thread=False', echo=True)

Base = declarative_base()

def get_current_datetime():
    return datetime.now().strftime("%Y-%m-%d %H:%M:%S")

wanli's avatar
wanli committed
22 23 24 25 26 27
class Watch(Base):
    __tablename__ = 'monitor_watch'
    id = Column(Integer, primary_key=True, autoincrement=True)
    imei = Column(String)
    create_at = Column(String, default=get_current_datetime)

wanli's avatar
wanli committed
28 29 30 31
class System(Base):
    __tablename__ = 'monitor_system'

    id = Column(Integer, primary_key=True, autoincrement=True)
wanli's avatar
wanli committed
32
    watch = Column(Integer) # 手表ID
wanli's avatar
wanli committed
33 34 35 36 37 38 39
    free_size = Column(Integer) # 单位:字节
    timestamp = Column(String(50), default=get_current_datetime)

class Lvgl(Base):
    __tablename__ = 'monitor_lvgl'

    id = Column(Integer, primary_key=True, autoincrement=True)
wanli's avatar
wanli committed
40
    watch = Column(Integer) # 手表ID
wanli's avatar
wanli committed
41 42 43 44 45 46 47 48 49 50 51 52 53
    total_size = Column(Integer) # 单位:字节
    free_cnt = Column(Integer)
    free_size = Column(Integer)
    free_biggest_size = Column(Integer)
    used_cnt = Column(Integer)
    used_pct = Column(Integer)
    frag_pct = Column(Integer)
    timestamp = Column(String(50), default=get_current_datetime)

class Evm(Base):
    __tablename__ = 'monitor_evm'

    id = Column(Integer, primary_key=True, autoincrement=True)
wanli's avatar
wanli committed
54
    watch = Column(Integer) # 手表ID
wanli's avatar
wanli committed
55 56 57 58 59 60 61 62 63 64 65 66 67
    total_size = Column(Integer) # 单位:字节
    free_size = Column(Integer)
    gc_usage = Column(Integer)
    heap_total_size = Column(Integer)
    heap_used_size = Column(Integer)
    stack_total_size = Column(Integer)
    stack_used_size = Column(Integer)
    timestamp = Column(String(50), default=get_current_datetime)

class Image(Base):
    __tablename__ = 'monitor_image'

    id = Column(Integer, primary_key=True, autoincrement=True)
wanli's avatar
wanli committed
68
    watch = Column(Integer) # 手表ID
wanli's avatar
wanli committed
69 70 71 72 73 74 75 76 77 78 79 80 81 82
    uri = Column(String(50))
    length = Column(Integer)
    png_uncompressed_size = Column(Integer)
    png_total_count = Column(Integer)
    png_file_size = Column(Integer)
    timestamp = Column(String(50), default=get_current_datetime)

Base.metadata.create_all(engine, checkfirst=True)

# engine是2.2中创建的连接
Session = sessionmaker(bind=engine)
 
# 创建Session类实例
session = Session()