change loading config for export.py

This commit is contained in:
Thomas Peetz
2025-06-08 20:23:30 +02:00
parent 6e520a46f0
commit b610947403
+11 -15
View File
@@ -4,7 +4,7 @@ import data from json file to MariaDB
from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter
from datetime import datetime from datetime import datetime
import json import json
import yaml import os
from sqlalchemy import create_engine from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker from sqlalchemy.orm import sessionmaker
from platformdirs import PlatformDirs from platformdirs import PlatformDirs
@@ -19,25 +19,20 @@ parser.add_argument('--config', '-c', default='kontor-docker')
parser.add_argument('--file', '-f', default='data.json') parser.add_argument('--file', '-f', default='data.json')
args = parser.parse_args() 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__': if __name__ == '__main__':
logger = get_logger(args.verbose, args.config) logger = get_logger(args.verbose, args.config)
logger.info('kontor.export started') logger.info('kontor.export started')
dirs = PlatformDirs(args.config) engine = create_engine(DATABASE_URL)
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)
Base.metadata.create_all(bind=engine, checkfirst=True) Base.metadata.create_all(bind=engine, checkfirst=True)
__session__ = sessionmaker(bind=engine) SessionLocal = sessionmaker(bind=engine)
with __session__() as db: with SessionLocal() as db:
data = {} data = {}
tables = registry.keys() tables = registry.keys()
for table in tables: for table in tables:
@@ -60,3 +55,4 @@ if __name__ == '__main__':
#kontor_db = KontorDB(engine, logger) #kontor_db = KontorDB(engine, logger)
#kontor_db.export_db(ExportType.JSON, args.file) #kontor_db.export_db(ExportType.JSON, args.file)
logger.info('kontor.export finished') logger.info('kontor.export finished')