Q58Bot/src/migrate.py

46 lines
1.5 KiB
Python

import json
import os
import logging
from database import Database
# 设置日志
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)
def migrate_data(json_file, db_file):
try:
# 确保 data 目录存在
os.makedirs(os.path.dirname(db_file), exist_ok=True)
logger.info(f"Ensuring directory exists: {os.path.dirname(db_file)}")
# 创建数据库连接
db = Database(db_file)
logger.info(f"Database connection created: {db_file}")
# 读取 JSON 文件
with open(json_file, 'r') as f:
keywords = json.load(f)
logger.info(f"JSON file loaded: {json_file}")
if not isinstance(keywords, list):
raise ValueError(f"Expected a list in JSON file, but got {type(keywords)}")
# 迁移关键词
for keyword in keywords:
db.add_keyword(keyword)
logger.info(f"Migration complete. Migrated {len(keywords)} keywords.")
# 验证迁移
migrated_keywords = db.get_all_keywords()
logger.info(f"Verified {len(migrated_keywords)} keywords in the database.")
except Exception as e:
logger.error(f"An error occurred during migration: {str(e)}")
raise
if __name__ == "__main__":
json_file = '/app/data/keywords.json' # 旧的 JSON 文件路径
db_file = '/app/data/q58.db' # 新的数据库文件路径
migrate_data(json_file, db_file)