forked from ckh08045/AutoPercenty
59 lines
2.1 KiB
Python
59 lines
2.1 KiB
Python
import sqlite3
|
|
from pymongo import MongoClient
|
|
from datetime import datetime
|
|
|
|
def sqlite_to_mongodb(sqlite_db_path, mongo_uri, mongo_db_name, mongo_collection_name):
|
|
# SQLite 데이터베이스 연결
|
|
sqlite_conn = sqlite3.connect(sqlite_db_path)
|
|
sqlite_cursor = sqlite_conn.cursor()
|
|
|
|
# MongoDB 연결
|
|
mongo_client = MongoClient(mongo_uri)
|
|
mongo_db = mongo_client[mongo_db_name]
|
|
mongo_collection = mongo_db[mongo_collection_name]
|
|
|
|
# SQLite에서 데이터 조회
|
|
sqlite_cursor.execute("SELECT product_id FROM processed_products")
|
|
sqlite_products = sqlite_cursor.fetchall()
|
|
|
|
# 데이터 가공 및 MongoDB에 저장
|
|
for sqlite_product in sqlite_products:
|
|
product_id_raw = sqlite_product[0]
|
|
# 'ID:' 부분 제거
|
|
product_id = product_id_raw.replace('ID:', '').strip()
|
|
|
|
steps = {
|
|
'tag_modification': 'complete',
|
|
'option_modification': 'complete',
|
|
'detail_page_modification': 'complete',
|
|
'thumbnail_modification': 'complete',
|
|
'price_modification': 'complete',
|
|
'title_modification': 'complete'
|
|
}
|
|
document = {
|
|
'product_id': product_id,
|
|
'user_name': 'leensoo1nt@gmail.com', # 처리를 시작하는 사용자
|
|
'process_time': datetime.now(), # 처리 시작 시간
|
|
'process_steps': steps, # 처리 단계 및 상태
|
|
'finalized': True, # 최종 완료 여부
|
|
'finalized_by':'leensoo1nt@gmail.com',
|
|
'finalized_time':datetime.now()
|
|
}
|
|
|
|
# MongoDB에 문서 저장
|
|
mongo_collection.insert_one(document)
|
|
|
|
print("SQLite 데이터가 MongoDB로 이전되었습니다.")
|
|
|
|
# 연결 닫기
|
|
sqlite_conn.close()
|
|
mongo_client.close()
|
|
|
|
# 스크립트 실행 예제
|
|
sqlite_db_path = 'products.db'
|
|
mongo_uri = 'mongodb://root:1234@cckb9998.synology.me:27017'
|
|
mongo_db_name = 'taobao_project'
|
|
mongo_collection_name = 'AutoPercenty_products'
|
|
|
|
sqlite_to_mongodb(sqlite_db_path, mongo_uri, mongo_db_name, mongo_collection_name)
|