Files
yakpanel-core/mod/base/database_tool/base.py
2026-04-07 02:04:22 +05:30

35 lines
1.1 KiB
Python

import sys
from typing import List, Dict, Optional
from .util import DB
if "/www/server/panel/class" not in sys.path:
sys.path.insert(0, "/www/server/panel/class")
from db_mysql import panelMysql
from database import database
from databaseModel.mongodbModel import main as mongodb
from databaseModel.pgsqlModel import main as pgsql
from databaseModel.sqlserverModel import main as sqlserver
class BaseDatabaseTool:
_type_name = ""
def local_server_info(self) -> Optional[Dict]:
raise NotImplementedError()
# 获取所有可以管理的服务器的信息
def server_list(self) -> List[Dict]:
data = DB('database_servers').where("LOWER(db_type)=LOWER('?')", (self._type_name, )).select()
if not isinstance(data, list):
data = []
local_server = self.local_server_info()
if local_server is not None:
data.insert(0, local_server)
return data
# 添加一个数据库
def add_database(self, server_id: int, database_name: str, **kwargs) -> List[Dict]:
raise NotImplementedError()