def check_save(): if not os.path.isfile(SAVE_FILE): logger.warning("Provided save file does not exist. Creating a new one.") db.create_tables(ALL_MODELS) Constants.create( save_version=SAVE_VERSION, secret_token=secrets.token_bytes(32) ) else: constants = Constants.get_or_none() if constants is None: logger.error( "Database does not conform to expected format. Failed to start." ) sys.exit(2) if constants.save_version != SAVE_VERSION: logger.warning( f"Save format {constants.save_version} does not match the required version {SAVE_VERSION}!" ) logger.warning("Attempting upgrade") updated = False while constants.save_version != SAVE_VERSION: updated = True logger.warning( f"Backing up old save as {SAVE_FILE}.{constants.save_version}" ) shutil.copyfile(SAVE_FILE, f"{SAVE_FILE}.{constants.save_version}") logger.warning(f"Starting upgrade to {constants.save_version + 1}") try: upgrade(constants.save_version) except Exception as e: logger.exception(e) logger.error("ERROR: Could not start server") sys.exit(2) break else: logger.warning(f"Upgrade to {constants.save_version + 1} done.") constants = Constants.get() else: if updated: logger.warning("Upgrade process completed successfully.")
def check_save(): if not os.path.isfile(SAVE_FILE): logger.warning( "Provided save file does not exist. Creating a new one.") db.create_tables(ALL_MODELS) Constants.create(save_version=SAVE_VERSION, secret_token=secrets.token_bytes(32)) else: constants = Constants.get_or_none() if constants is None: logger.error( "Database does not conform to expected format. Failed to start." ) sys.exit(2) if constants.save_version != SAVE_VERSION: logger.warning( f"Save version {constants.save_version} does not match expected {SAVE_VERSION}!" ) logger.info( "Conversion scripts can potentially be applied to upgrade. For more information see the docs." ) sys.exit(2)