Skip to content
Snippets Groups Projects
Commit a92b3e1b authored by Henrique Varella Ehrenfried's avatar Henrique Varella Ehrenfried
Browse files

Add script to create and remove AG tables

parent f555182e
No related branches found
No related tags found
No related merge requests found
import sys
import subprocess
# Params:
# 1) Local do SQL
# 2) Tipo de uso = g para Grupos predefinidos e f para arquivos.
# 3) Arquivos ou grupos: Caso queira usar mais de um grupo ou arquivo, colocar entre " ": "INEP PNAD FIES"
# 4) Ação a ser utilizada: create | drop | rebuild
# 5) Nome do banco que será inserido
#---------------DATA------------------
INEP = [
'admission.sql',
'course.sql',
'evader.sql',
'extracurricular_activities.sql',
'graduate.sql',
'institution.sql',
'institutionPrivate.sql',
'social_support.sql',
'student_loans.sql'
]
PROUNI = [
'coursePROUNI.sql',
'institutionPROUNI.sql'
'prouni.sql'
]
PNAD = [
'pnad.sql'
]
CADUNICO = [
'cad_unico.sql'
]
FIES = [
'courseFIES.sql',
'fies.sql',
'institutionFIES.sql'
]
ALL_GROUPS = INEP + PROUNI + PNAD + CADUNICO + FIES
DATABASE_TABLE_NAME = {
'admission.sql': 'admission_ag',
'course.sql': 'course_ag',
'evader.sql': 'evader_ag',
'extracurricular_activities.sql': 'extracurricular_activities_ag',
'graduate.sql': 'graduate_ag',
'institution.sql': 'institution_ag',
'institutionPrivate.sql': 'institution_private_ag',
'social_support.sql': 'social_support_ag',
'student_loans.sql': 'student_loans_ag',
'coursePROUNI.sql': 'course_prouni_ag',
'institutionPROUNI.sql': 'institution_prouni_ag',
'prouni.sql': 'prouni_ag',
'pnad.sql': 'pnad_ag',
'cad_unico.sql': 'cad_unico_ag',
'courseFIES.sql': 'course_fies_ag',
'fies.sql': 'fies_ag',
'institutionFIES.sql': 'institution_fies_ag'
}
DATA = {
"INEP": INEP,
"PROUNI": PROUNI,
"PNAD": PNAD,
"CADUNICO": CADUNICO,
"FIES": FIES,
"ALL_GROUPS": ALL_GROUPS
}
#----------------LOGIC------------------
if len(sys.argv) != 6:
print(''' Params:
1) Local do SQL
2) Tipo de uso = g para Grupos predefinidos e f para arquivos.
3) Arquivos ou grupos: Caso queira usar mais de um grupo ou arquivo, colocar entre " ": "INEP PNAD FIES"
4) Ação a ser utilizada: create | drop | rebuild
5) Nome do banco que será inserido"
''')
exit(1)
SQL_PATH = sys.argv[1]
FILES_OR_GROUPS = sys.argv[2].upper()
FILES = sys.argv[3] if FILES_OR_GROUPS == 'F' else False
GROUPS = sys.argv[3].upper() if FILES_OR_GROUPS == 'G' else False
ACTION = sys.argv[4]
DATABASE = sys.argv[5]
WORK_DATA = FILES if FILES else GROUPS
WORK_DATA = WORK_DATA.split(" ")
def drop_tables(tables_to_work):
for t2w in tables_to_work:
print("\033[1;32;40m[Executing SQL]: " + "\033[1;37;40mDROP TABLE " + DATABASE_TABLE_NAME[t2w] + ";")
subprocess.run(["mclient", "-d", DATABASE, "-s", 'DROP TABLE ' + DATABASE_TABLE_NAME[t2w] + ';'])
def create_tables(tables_to_work):
for t2w in tables_to_work:
print("\033[1;32;40m[Executing SQL File]: " + "\033[1;37;40m" + t2w)
subprocess.run(["mclient", "-d", DATABASE, SQL_PATH + '/' + t2w])
def rebuild_tables(tables_to_work):
drop_tables(tables_to_work)
create_tables(tables_to_work)
def run_action():
if FILES_OR_GROUPS == 'G':
SELECTED_GROUPS = []
for WD in WORK_DATA:
SELECTED_GROUPS += DATA[WD]
SELECTED_TABLES = WORK_DATA if FILES_OR_GROUPS == 'F' else SELECTED_GROUPS
if ACTION == 'drop':
drop_tables(SELECTED_TABLES)
if ACTION == 'create':
create_tables(SELECTED_TABLES)
if ACTION == 'rebuild':
rebuild_tables(SELECTED_TABLES)
run_action()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment