初始化结构

This commit is contained in:
wuaho 2021-07-26 23:39:38 +08:00
parent f2f4b5ed75
commit d6cab58c45

View File

@ -1,5 +1,4 @@
import copy
from settings import settings
from .valid_data import *
@ -9,6 +8,7 @@ class Sketch:
self.struct_cache = struct_cache
self.__type_dict = dict()
self.__struct_dict = dict()
self.init_tb_struct()
@property
def type_dict(self):
@ -30,20 +30,30 @@ class Sketch:
if self.struct_cache:
self.struct_cache.update(db, tb, data)
def init_tb_struct_cache(self, db, tb):
sql = f"select name,type from system.columns where database='{db}' and table='{tb}'"
data, columns = self.db_client.execute(sql, with_column_types=True, columnar=True)
res = {k: v for k, v in zip(data[0], data[1])}
self.__struct_dict[f'{db}_{tb}'] = res
self.up_tb_struct(db, tb, res)
return res
def init_tb_struct(self):
self.init_tb_struct_cache(settings.GAME, 'event')
self.init_tb_struct_cache(settings.GAME, 'user')
def get_tb_struct_cache(self, db, tb):
"""
查一条记录 取字段 和类型
取字段 和类型
:param db:
:param tb:
:return:
"""
if self.__struct_dict.get(f'{db}_{tb}'):
return self.__struct_dict.get(f'{db}_{tb}')
sql = f'select * from {db}.{tb} limit 1'
_, columns = self.db_client.execute(sql, with_column_types=True)
res = {item[0]: item[1] for item in columns}
self.__struct_dict[f'{db}_{tb}'] = res
self.up_tb_struct(db, tb, res)
res = self.init_tb_struct_cache(db, tb)
return res
def update_user_view(self, db, tb):