/
__main__.py
61 lines (52 loc) · 2.03 KB
/
__main__.py
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
"""
Comparing 2 mysql databases schema
"""
from db_connection import dbConnection
import configparser
from db_exception import dbException
import sys
from manager import manager
from comparator import comparator
from writerScreen import writerScreen
from writerSql import writerSql
class main(object):
def __init__(self):
#read config, create connections
self.db_config = {}
ini_parser = configparser.ConfigParser()
ini_parser.read("config.ini", 'utf-8')
for section in ini_parser.sections():
self.db_config[section] = {}
for option in ini_parser.options(section):
self.db_config[section][option] = ini_parser.get(section,option)
try:
self.db_connection_from = dbConnection(self.db_config['source_db'])
self.db_connection_to = dbConnection(self.db_config['target_db'])
self.db_connection_target = dbConnection(self.db_config['target_db'], False)
except dbException:
sys.exit(1)
self.informationParser = manager()
def gatherInformation(self):
self.db_info_from = self.informationParser.fetchInfo(self.db_connection_from)
self.db_info_to = self.informationParser.fetchInfo(self.db_connection_to)
def compareMessages(self):
writer = writerScreen()
comparator_obj = comparator(writer)
results = comparator_obj.compare(self.db_info_from, self.db_info_to)
print(results.getText())
def compareSql(self):
writer = writerSql()
comparator_obj = comparator(writer)
results = comparator_obj.compare(self.db_info_from, self.db_info_to)
print(results.getText())
def applyDbChanges(self):
writer = writerSql()
comparator_obj = comparator(writer)
results = comparator_obj.compare(self.db_info_from, self.db_info_to)
results.runSql(self.db_connection_target)
if __name__ == "__main__":
app = main()
app.gatherInformation()
app.compareMessages()
app.compareSql()
app.applyDbChanges()