init_db.py
792 Bytes
import sys
import os
from configparser import ConfigParser
from sqlalchemy import engine_from_config
from sqlalchemy.sql.expression import text
from .models import Base
t = os.path.split(__file__)
current_dir = t[0]
def execute(engine, filename):
fullpath = os.path.join(current_dir, filename)
with open(fullpath) as f:
sql = f.read()
engine.execute(text(sql))
def main(argv=sys.argv[1:]):
conf_file = argv[0]
conf = ConfigParser()
conf.read(conf_file)
engine = engine_from_config(conf['main'], 'db_')
engine.echo = True
Base.metadata.create_all(engine)
execute(engine, 'func-rec-to-json.sql')
for operation in ('insert', 'update', 'delete'):
filename = f'func-trigger-after-{operation}.sql'
execute(engine, filename)