forked from eduardoximenes/query-engine-processor
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mysql_import.py
116 lines (95 loc) · 3.35 KB
/
mysql_import.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
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
import mysql.connector
import processor
import os
host_glob = os.environ.get('HOST_MYSQL')
user_glob = os.environ.get('USER_MYSQL')
password_glob = os.environ.get('PASSWORD_MYSQL')
port_glob = os.environ.get('PORT_MYSQL')
database_glob = None #Leave this field unchanged
def mysql_check_table(table:str,cursor):
try:
query = ('select * from {}').format(table)
cursor.execute(query)
return True
except:
return False
def show_tables(cursor):
print("Tabelas em {}:".format(database_glob))
tables = ("show tables;")
cursor.execute(tables)
for (row) in cursor:
for key in row:
print('* '+row[key].strip("'"))
def mysqlconnect():
conn_params = {
'host':host_glob,
'user':user_glob,
'password':password_glob,
'database': database_glob,
'port': port_glob
}
try:
# Double * unpack the dictionary
db_connection=mysql.connector.connect(**conn_params)
except:
print("erro : Esquema não encontrado.")
return False
print('Conectado ao servidor!')
return db_connection
def show_database():
conn = mysql.connector.connect (user=user_glob, password=password_glob,
host=host_glob,buffered=True)
cursor = conn.cursor()
databases = ("show databases;")
cursor.execute(databases)
print("Schemas no MySQL server:")
for (databases) in cursor:
print ('* '+databases[0])
def mysqlimport():
global database_glob
show_database()
conn = None
while not conn :
print("Selecione um Schema: ")
database_glob = input('>> ')
conn = mysqlconnect()
cursor = conn.cursor(dictionary=True,buffered=True)
show_tables(cursor)
print('Escolha a tabela para importar: ')
table_imp = input('>> ')
while True:
if mysql_check_table(table_imp, cursor):
break
else :
print("erro : Tabela não existe no servidor.")
print('Escolha a tabela para importar: ')
table_imp = input('>> ')
if not processor.check_existing_schema(schema=database_glob):
create_folder = None
while not(create_folder == 's' or create_folder == 'n'):
print('Esquema não encontrado localmente, gostaria de criá-lo? (S | N)')
create_folder = input('>> ')
create_folder = create_folder.lower()
if create_folder=='s':
processor.create_schema(schema=database_glob)
else :
return True
if processor.check_existing_table(schema=database_glob, table=table_imp):
overwrite = None
while not(overwrite == 's' or overwrite =='n'):
print('Tabela já existente, gostaria de sobreescrever? (S | N)')
overwrite = input('>> ')
overwrite = overwrite.lower()
if overwrite == 's':
headers = cursor.column_names
processor.write_csv(table_imp, cursor, headers, schema=database_glob)
elif overwrite == 'n':
print("Importação encerrada.")
return True
else :
headers = cursor.column_names
processor.write_csv(table_imp, cursor, headers, schema=database_glob)
print("Importação finalizada.")
cursor.close()
conn.close()
return True