diff --git a/database_manager.py b/database_manager.py index 1f36a06..aabe815 100644 --- a/database_manager.py +++ b/database_manager.py @@ -1,6 +1,8 @@ import os + import pandas as pd -from sqlalchemy import create_engine, text +from sqlalchemy import create_engine, text, inspect + from utils import load_config @@ -29,6 +31,21 @@ class DatabaseManager: """根据表键名获取实际表名""" return self.config['sqlite']['table_name'].get(key, key) + def table_exists(self, table_key): + """ + 检查表是否存在 + + 参数: + table_key (str): 数据表键名 + + 返回: + bool: 表是否存在 + """ + table_name = self.get_table_name(table_key) + engine = self.get_engine() + inspector = inspect(engine) + return inspector.has_table(table_name) + def get_existing_trade_dates(self, table_key): """ 从数据库中获取已有的交易日期 @@ -39,6 +56,11 @@ class DatabaseManager: 返回: set: 已存在于数据库中的交易日期集合 """ + # 先检查表是否存在 + if not self.table_exists(table_key): + print(f"表 '{self.get_table_name(table_key)}' 不存在,返回空集合") + return set() + table_name = self.get_table_name(table_key) engine = self.get_engine() query = f"SELECT DISTINCT trade_date FROM {table_name}"