# (siggen) PS C:\Github\siggen> python .\Scripts\fetch_tables.py
|
|
import pyodbc
|
|
import os, json, csv
|
|
from tqdm import tqdm
|
|
from datetime import datetime
|
|
|
|
starting_time = datetime.now()
|
|
|
|
credentials_path = os.path.join(os.getcwd(), 'Scripts', 'credentials.json')
|
|
with open(credentials_path, 'r') as file:
|
|
credentials = json.load(file)
|
|
|
|
DSNNAME = credentials["DSNNAME"]
|
|
DBUSER = credentials["DBUSER"]
|
|
DBPWD = credentials["DBPWD"]
|
|
|
|
# 데이터베이스 연결
|
|
cnxn = pyodbc.connect(f'DSN={DSNNAME};UID={DBUSER};PWD={DBPWD};charset=utf-8')
|
|
cursor = cnxn.cursor()
|
|
|
|
schema = 'snits_siggen'
|
|
tables = ['inter_info', 'plan']
|
|
|
|
base_dir = os.path.join(os.getcwd(), 'Data', 'fetched_tables')
|
|
|
|
for table in tables:
|
|
# 테이블 데이터 다운로드
|
|
cursor.execute(f"SELECT * FROM {schema}.{table}")
|
|
|
|
csv_file_path = os.path.join(base_dir, f"{table}.csv")
|
|
with open(csv_file_path, 'w', newline='', encoding='utf-8-sig') as csvfile:
|
|
csv_writer = csv.writer(csvfile)
|
|
columns = [column[0] for column in cursor.description]
|
|
csv_writer.writerow(columns)
|
|
for row in cursor.fetchall():
|
|
csv_writer.writerow(row)
|
|
|
|
cnxn.close()
|
|
|
|
print("elapsed time :", datetime.now() - starting_time)
|