-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathPMS_DB_Manage.py
More file actions
97 lines (80 loc) Β· 2.72 KB
/
PMS_DB_Manage.py
File metadata and controls
97 lines (80 loc) Β· 2.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
"""
CodeCraft PMS Project
νμΌλͺ
: PMS_DB_Manage.py
λ§μ§λ§ μμ λ μ§ : 2025/02/01
"""
import pymysql
from mysql_connection import *
# PMS DBλ₯Ό μμ±νλ ν¨μ
def create_pms_db():
connection = db_root_connect()
cur = connection.cursor(pymysql.cursors.DictCursor)
try:
cur.execute('CREATE DATABASE PMS DEFAULT CHARACTER SET utf8mb4')
connection.commit()
return True
except Exception as e:
connection.rollback()
return False
finally:
cur.close()
connection.close()
# PMS DBλ₯Ό μμ νλ ν¨μ
# PMS DB μμ μ μλμ΄ μλ λͺ¨λ ν
μ΄λΈκ³Ό λ°μ΄ν°κ° μμ λλ―λ‘ μ£Όμνμ¬ μ¬μ©
def drop_pms_db():
connection = db_root_connect()
cur = connection.cursor(pymysql.cursors.DictCursor)
try:
cur.execute('DROP DATABASE PMS')
connection.commit()
return True
except Exception as e:
connection.rollback()
return False
finally:
cur.close()
connection.close()
# PMS DBλ₯Ό μμ νκ³ λ€μ μμ±νλ ν¨μ
def recreate_pms_db():
connection = db_root_connect()
cur = connection.cursor(pymysql.cursors.DictCursor)
try:
cur.execute('DROP DATABASE PMS')
connection.commit()
cur.execute('CREATE DATABASE PMS DEFAULT CHARACTER SET utf8mb4')
connection.commit()
return True
except Exception as e:
connection.rollback()
return False
finally:
cur.close()
connection.close()
# SQL νμΌμ μ½μ΄μ PMS DBμ ν
μ΄λΈμ μμ±νκ³ κ΄κ³ λ° μ μ½μ‘°κ±΄ μ€μ , νκ³Ό μ 보λ₯Ό μ
λ ₯νλ ν¨μ
# μ£Όμμ¬ν : PMS DBκ° μμ λ μνμμ μ€νν΄μΌ νλ€ (SQL νμΌ μμ PMS DB μμ±λ¬Έμ΄ ν¬ν¨λμ΄ μκΈ° λλ¬Έ)
def create_pms_db_byFile():
conn = db_root_connect()
try:
with conn.cursor() as cur:
with open('PMS_Tables_Define.sql', 'r', encoding='utf-8') as f:
sql_file = f.read()
sql_commands = sql_file.split(';')
for command in sql_commands:
command = command.strip()
if command:
cur.execute(command)
with open('PMS_PLSQL_Define.sql', 'r', encoding='utf-8') as f:
plsql_file = f.read()
plsql_commands = plsql_file.split('$$')
for command in plsql_commands:
command = command.strip()
if command:
cur.execute(command)
conn.commit()
except Exception as e:
print(f"Error [create_pms_db_byFile] : {e}")
cur.execute('DROP DATABASE PMS')
conn.commit()
return e
finally:
conn.close()