diff --git a/kontor-scripts/export.py b/kontor-scripts/export.py index 8e7c006..df66d61 100644 --- a/kontor-scripts/export.py +++ b/kontor-scripts/export.py @@ -4,7 +4,7 @@ import data from json file to MariaDB from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter from datetime import datetime import json -import yaml +import os from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from platformdirs import PlatformDirs @@ -19,25 +19,20 @@ parser.add_argument('--config', '-c', default='kontor-docker') parser.add_argument('--file', '-f', default='data.json') args = parser.parse_args() +DB_USER: str = os.getenv("DB_USER", "kontor") +DB_PASSWORD: str = os.getenv("DB_PASSWORD", "kontor") +DB_SERVER: str = os.getenv("DB_SERVER", "127.0.0.1") +DB_PORT: int = int(os.getenv("DB_PORT", 5432)) +DB_DBNAME: str = os.getenv("DB_DBNAME", "kontor") +DATABASE_URL: str = f"postgresql://{DB_USER}:{DB_PASSWORD}@{DB_SERVER}:{DB_PORT}/{DB_DBNAME}" if __name__ == '__main__': logger = get_logger(args.verbose, args.config) logger.info('kontor.export started') - dirs = PlatformDirs(args.config) - database_config = Path(dirs.user_config_dir, 'database-config.yaml') - with open(database_config, 'rt') as f: - db_config = yaml.safe_load(f.read()) - connect_string = ('postgresql://{}:{}@{}:{}/{}'.format( - db_config['postgres']['user'], - db_config['postgres']['password'], - db_config['postgres']['host'], - db_config['postgres']['port'], - db_config['postgres']['database'] - )) - engine = create_engine(connect_string) + engine = create_engine(DATABASE_URL) Base.metadata.create_all(bind=engine, checkfirst=True) - __session__ = sessionmaker(bind=engine) - with __session__() as db: + SessionLocal = sessionmaker(bind=engine) + with SessionLocal() as db: data = {} tables = registry.keys() for table in tables: @@ -60,3 +55,4 @@ if __name__ == '__main__': #kontor_db = KontorDB(engine, logger) #kontor_db.export_db(ExportType.JSON, args.file) logger.info('kontor.export finished') +