import sys
from configparser import ConfigParser
from sqlalchemy import create_engine
conf_file = sys.argv[1]
conf = ConfigParser()
conf.read(conf_file)
cf = conf['main']
sql_table_tpl = 'GRANT SELECT ON {table} TO ' + cf['user']
sql_schema_tpl = 'GRANT USAGE ON SCHEMA {schema} TO ' + cf['user']
for line in cf:
if line.find('db_url') < 0:
continue
db = line.strip().replace('_db_url', '')
print(f'Database {db}')
db_url = cf[line]
engine = create_engine(db_url)
schema_line = db + '_schemas'
for schema in cf[schema_line].split():
sql = sql_schema_tpl.format(schema=schema)
print(sql)
engine.execute(sql)
table_line = db + '_tables'
for tablename in cf[table_line].split():
sql = sql_table_tpl.format(table=tablename)
print(sql)
engine.execute(sql)