private void run(IDatabase database) throws Exception { IUpgrade nextUpgrade = null; while ((nextUpgrade = findNextUpgrade(database)) != null) { log.trace( "execute update from v({}) to v{}", nextUpgrade.getInitialVersions(), nextUpgrade.getEndVersion()); nextUpgrade.exec(database); updateVersion(nextUpgrade.getEndVersion(), database); } log.trace("no more upgrades"); }