可用
This commit is contained in:
60
add_extracted_field.py
Normal file
60
add_extracted_field.py
Normal file
@@ -0,0 +1,60 @@
|
||||
import asyncio
|
||||
import sys
|
||||
|
||||
from loguru import logger
|
||||
|
||||
from core.config import Config
|
||||
from core.database import DatabaseManager
|
||||
from core.logger import setup_logger
|
||||
|
||||
|
||||
async def add_extracted_field():
|
||||
# 初始化
|
||||
config = Config.from_yaml()
|
||||
logger = setup_logger(config)
|
||||
db_manager = DatabaseManager(config)
|
||||
|
||||
try:
|
||||
await db_manager.initialize()
|
||||
|
||||
# 检查字段是否存在
|
||||
async with db_manager.get_connection() as conn:
|
||||
# SQLite中查询表结构的方法
|
||||
cursor = await conn.execute("PRAGMA table_info(email_accounts)")
|
||||
columns = await cursor.fetchall()
|
||||
|
||||
# 检查是否已存在extracted字段
|
||||
extracted_exists = any(column[1] == 'extracted' for column in columns)
|
||||
|
||||
if extracted_exists:
|
||||
logger.info("extracted字段已存在,无需添加")
|
||||
return
|
||||
|
||||
# 添加extracted字段
|
||||
logger.info("正在添加extracted字段...")
|
||||
await conn.execute("""
|
||||
ALTER TABLE email_accounts
|
||||
ADD COLUMN extracted BOOLEAN DEFAULT 0
|
||||
""")
|
||||
await conn.commit()
|
||||
|
||||
logger.success("成功添加extracted字段")
|
||||
|
||||
# 初始化字段值
|
||||
logger.info("正在初始化extracted字段值...")
|
||||
await conn.execute("""
|
||||
UPDATE email_accounts
|
||||
SET extracted = 0
|
||||
""")
|
||||
await conn.commit()
|
||||
|
||||
logger.success("初始化完成,所有账号的extracted字段已设置为0")
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"添加字段时出错: {str(e)}")
|
||||
finally:
|
||||
await db_manager.cleanup()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(add_extracted_field())
|
||||
Reference in New Issue
Block a user