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), api_token=secrets.token_hex(32), ) else: try: save_version = get_save_version() except: logger.error( "Database does not conform to expected format. Failed to start." ) sys.exit(2) if save_version != SAVE_VERSION: logger.warning( f"Save format {save_version} does not match the required version {SAVE_VERSION}!" ) logger.warning("Attempting upgrade") updated = False while save_version != SAVE_VERSION: updated = True save_backups = Path("save_backups") if not save_backups.is_dir(): save_backups.mkdir() backup_path = (save_backups.resolve() / f"{Path(SAVE_FILE).name}.{save_version}") logger.warning(f"Backing up old save as {backup_path}") shutil.copyfile(SAVE_FILE, backup_path) logger.warning(f"Starting upgrade to {save_version + 1}") try: upgrade(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 {save_version + 1} done.") save_version = get_save_version() 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 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)