feat: MSSQL 테이블 스키마 확인 유틸리티 추가
- INFORMATION_SCHEMA 조회로 컬럼 정보 확인 - SALE_MAIN, SALE_SUB 테이블 구조 검증 - 컬럼명, 데이터타입, NULL 여부 출력
This commit is contained in:
parent
7aad05acb9
commit
fdc369c139
54
backend/check_table_schema.py
Normal file
54
backend/check_table_schema.py
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
"""
|
||||||
|
SALE_MAIN 테이블 컬럼 확인 스크립트
|
||||||
|
"""
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
sys.path.insert(0, os.path.dirname(__file__))
|
||||||
|
|
||||||
|
from db.dbsetup import DatabaseManager
|
||||||
|
from sqlalchemy import text
|
||||||
|
|
||||||
|
def check_sale_table_columns(table_name):
|
||||||
|
"""테이블의 모든 컬럼 확인"""
|
||||||
|
db_manager = DatabaseManager()
|
||||||
|
|
||||||
|
try:
|
||||||
|
session = db_manager.get_session('PM_PRES')
|
||||||
|
|
||||||
|
# SQL Server에서 테이블 컬럼 정보 조회
|
||||||
|
query = text(f"""
|
||||||
|
SELECT
|
||||||
|
COLUMN_NAME,
|
||||||
|
DATA_TYPE,
|
||||||
|
CHARACTER_MAXIMUM_LENGTH,
|
||||||
|
IS_NULLABLE
|
||||||
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
WHERE TABLE_NAME = '{table_name}'
|
||||||
|
ORDER BY ORDINAL_POSITION
|
||||||
|
""")
|
||||||
|
|
||||||
|
columns = session.execute(query).fetchall()
|
||||||
|
|
||||||
|
print("=" * 80)
|
||||||
|
print(f"{table_name} 테이블 컬럼 목록")
|
||||||
|
print("=" * 80)
|
||||||
|
|
||||||
|
for col in columns:
|
||||||
|
nullable = "NULL" if col.IS_NULLABLE == 'YES' else "NOT NULL"
|
||||||
|
max_len = f"({col.CHARACTER_MAXIMUM_LENGTH})" if col.CHARACTER_MAXIMUM_LENGTH else ""
|
||||||
|
print(f"{col.COLUMN_NAME:30} {col.DATA_TYPE}{max_len:20} {nullable}")
|
||||||
|
|
||||||
|
print("=" * 80)
|
||||||
|
print(f"총 {len(columns)}개 컬럼")
|
||||||
|
print("=" * 80)
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"오류 발생: {e}")
|
||||||
|
finally:
|
||||||
|
db_manager.close_all()
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
check_sale_table_columns('SALE_MAIN')
|
||||||
|
print("\n\n")
|
||||||
|
check_sale_table_columns('SALE_SUB')
|
||||||
Loading…
Reference in New Issue
Block a user