81 lines
2.9 KiB
Python
81 lines
2.9 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
"""
|
|
Supabase base_category 테이블 생성 및 동기화 테스트 스크립트
|
|
"""
|
|
|
|
import logging
|
|
import sys
|
|
import os
|
|
import traceback
|
|
from src.sp_manager import SupabaseManager
|
|
from src.keyword.db_manager import DBManager
|
|
|
|
# 로거 설정
|
|
logging.basicConfig(
|
|
level=logging.INFO,
|
|
format="%(asctime)s [%(levelname)s] %(message)s",
|
|
handlers=[
|
|
logging.FileHandler("test_log.txt", mode="w"),
|
|
logging.StreamHandler(sys.stdout)
|
|
]
|
|
)
|
|
logger = logging.getLogger("test")
|
|
|
|
def main():
|
|
"""테스트 스크립트 메인 함수"""
|
|
try:
|
|
logger.info("Supabase base_category 테이블 테스트 시작")
|
|
|
|
# SupabaseManager 생성
|
|
logger.info("SupabaseManager 생성")
|
|
sp_manager = SupabaseManager(logger)
|
|
|
|
# 1. base_category 테이블 생성/확인
|
|
logger.info("1. base_category 테이블 생성/확인")
|
|
try:
|
|
result = sp_manager.create_base_category_table()
|
|
logger.info(f"테이블 생성/확인 결과: {result}")
|
|
except Exception as e:
|
|
logger.error(f"테이블 생성/확인 오류: {e}")
|
|
logger.error(traceback.format_exc())
|
|
|
|
# 2. 로컬 DB에서 base_category 데이터 가져오기
|
|
logger.info("2. 로컬 DB 확인")
|
|
db_path = os.path.join(os.getcwd(), "price_settings.db")
|
|
logger.info(f"DB 파일 경로: {db_path}")
|
|
logger.info(f"DB 파일 존재 여부: {os.path.exists(db_path)}")
|
|
|
|
if os.path.exists(db_path):
|
|
try:
|
|
db_manager = DBManager(logger, sp_manager=sp_manager)
|
|
|
|
# 카테고리 수 확인
|
|
categories = db_manager.get_base_categories_as_dict()
|
|
logger.info(f"로컬 카테고리 수: {len(categories)}")
|
|
|
|
if categories:
|
|
# 3. Supabase에 동기화
|
|
logger.info("3. Supabase에 동기화 시도")
|
|
result = db_manager.sync_base_categories_to_supabase()
|
|
logger.info(f"동기화 결과: {result}")
|
|
except Exception as e:
|
|
logger.error(f"DBManager 오류: {e}")
|
|
logger.error(traceback.format_exc())
|
|
else:
|
|
logger.warning("DB 파일이 존재하지 않습니다. 프로그램을 실행하여 DB 파일을 먼저 생성해주세요.")
|
|
|
|
logger.info("테스트 완료")
|
|
except Exception as e:
|
|
logger.error(f"테스트 중 예외 발생: {e}")
|
|
logger.error(traceback.format_exc())
|
|
|
|
if __name__ == "__main__":
|
|
try:
|
|
main()
|
|
print("테스트가 완료되었습니다. test_log.txt 파일을 확인해주세요.")
|
|
except Exception as e:
|
|
print(f"치명적인 오류 발생: {e}")
|
|
print(traceback.format_exc())
|
|
print("자세한 내용은 test_log.txt 파일을 확인해주세요.") |