51 lines
1.7 KiB
Python
51 lines
1.7 KiB
Python
|
from pathlib import Path
|
|||
|
|
|||
|
from DB.db_main import *
|
|||
|
import platform
|
|||
|
import logging
|
|||
|
|
|||
|
|
|||
|
class SqliteDbMain(DbMain):
|
|||
|
def __init__(self, database_name):
|
|||
|
# logging.basicConfig()
|
|||
|
# logging.getLogger('sqlalchemy.engine').setLevel(logging.ERROR)
|
|||
|
# logging.getLogger('sqlalchemy.pool').setLevel(logging.ERROR)
|
|||
|
# logging.getLogger('sqlalchemy.dialects').setLevel(logging.ERROR)
|
|||
|
# logging.getLogger('sqlalchemy.orm').setLevel(logging.ERROR)
|
|||
|
self.database_name = database_name
|
|||
|
super().__init__()
|
|||
|
self.engine = self.__create_sqlite_engine()
|
|||
|
self.engine_path = self.__get_path()
|
|||
|
self.session = self.get_session()
|
|||
|
self.inspector = inspect(self.engine)
|
|||
|
|
|||
|
def __get_path(self):
|
|||
|
sys_platform = platform.platform().lower()
|
|||
|
print(f'当前操作系统:{platform.platform()}')
|
|||
|
__engine = ''
|
|||
|
if 'windows' in sys_platform.lower():
|
|||
|
__engine = f"E:\\sqlite_db\\stock_db\\{self.database_name}"
|
|||
|
elif 'macos' in sys_platform.lower():
|
|||
|
__engine = f"/Users/renmeng/Documents/sqlite_db/{self.database_name}"
|
|||
|
else:
|
|||
|
__engine = f"{self.database_name}"
|
|||
|
return __engine
|
|||
|
|
|||
|
def __create_sqlite_engine(self):
|
|||
|
sys_platform = platform.platform().lower()
|
|||
|
__engine = ''
|
|||
|
if 'windows' in sys_platform.lower():
|
|||
|
__engine = f"sqlite:///E:\\sqlite_db\\stock_db\\{self.database_name}"
|
|||
|
elif 'macos' in sys_platform.lower():
|
|||
|
__engine = f"sqlite:////Users/renmeng/Documents/sqlite_db/{self.database_name}"
|
|||
|
else:
|
|||
|
__engine = f"sqlite:///{self.database_name}"
|
|||
|
print(f"当前__engine是:{__engine}")
|
|||
|
return create_engine(__engine, pool_size=10, pool_timeout=10, echo=True)
|
|||
|
|
|||
|
def get_db_size(self):
|
|||
|
file_size = Path(self.engine_path).stat().st_size
|
|||
|
total = f"{file_size / (1024 * 1024):.2f} MB"
|
|||
|
print(f"文件大小: {file_size / (1024 * 1024):.2f} MB")
|
|||
|
return total
|