|
@@ -1,12 +1,31 @@
|
|
|
+import atexit
|
|
|
+import os
|
|
|
+import pkgutil
|
|
|
+import shutil
|
|
|
import sqlite3
|
|
|
+import sys
|
|
|
from typing import Optional
|
|
|
|
|
|
+from common.log import logger
|
|
|
+
|
|
|
connection: Optional[sqlite3.Connection] = None
|
|
|
|
|
|
|
|
|
def init_global_db_connection(db_path='./local.db'):
|
|
|
global connection
|
|
|
- connection = sqlite3.connect(db_path)
|
|
|
+ output_directory = os.path.dirname(sys.executable)
|
|
|
+ db_file = os.path.join(output_directory, 'sqlite.db')
|
|
|
+ if not os.path.exists(db_file):
|
|
|
+ template_file = resource_path('template.db')
|
|
|
+ destination_file = os.path.join(output_directory, 'sqlite.db')
|
|
|
+
|
|
|
+ if template_file:
|
|
|
+ shutil.copyfile(template_file, destination_file)
|
|
|
+ else:
|
|
|
+ print(f"模板文件 template.db 不存在")
|
|
|
+ else:
|
|
|
+ print(f"{db_file} 已存在")
|
|
|
+ connection = sqlite3.connect('./sqlite.db')
|
|
|
print("SQLite connection is established.")
|
|
|
|
|
|
|
|
@@ -22,5 +41,17 @@ def close_global_db_connection():
|
|
|
print("SQLite connection is closed.")
|
|
|
|
|
|
|
|
|
-def init_new_db_connection(db_path='./local.db'):
|
|
|
+def init_new_db_connection(db_path='./sqlite.db'):
|
|
|
return sqlite3.connect(db_path)
|
|
|
+
|
|
|
+
|
|
|
+def resource_path(relative_path):
|
|
|
+ # Function to get the absolute path to resources
|
|
|
+ try:
|
|
|
+ # PyInstaller creates a temp folder and stores path in _MEIPASS
|
|
|
+ base_path = sys._MEIPASS
|
|
|
+ except Exception:
|
|
|
+ base_path = os.path.abspath(".")
|
|
|
+
|
|
|
+ return os.path.join(base_path, relative_path)
|
|
|
+
|