"""This script initializes the admin database.""" import logging from sqlalchemy.exc import IntegrityError from app.config import settings from app.db import AdminSession, DBProjectServer logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) def initialize_dbadmin() -> None: """Initializes the admin database.""" session = AdminSession() for server_name in settings.DBPROJECT_SERVERS: logger.info(f'Adding project server: {server_name}') uri = f'postgresql://{settings.DBPROJECT_USER}:{settings.DBPROJECT_PASSWORD}@{server_name}' # noqa max_size = 2 ** 50 # 1 PiB server = DBProjectServer(uri=uri, max_size=max_size, available_size=max_size) try: with session.begin(): session.add(server) except IntegrityError: # The project server is already in the database pass def main() -> None: """Logs and initializes the admin database.""" logger.info('Creating initial data') initialize_dbadmin() logger.info('Initial data created') if __name__ == '__main__': main()