/** * Create an OpenmrsChangeSet from the given changeset * * @param changeSet * @param database */ public OpenMRSChangeSet(ChangeSet changeSet, Database database) throws Exception { setId(changeSet.getId()); setAuthor(changeSet.getAuthor()); setComments(changeSet.getComments()); setDescription(changeSet.getDescription()); setRunStatus(database.getRunStatus(changeSet)); setRanDate(database.getRanDate(changeSet)); }
public void update(Connection connection) { logger.fine("Starting database update"); try { Liquibase liquibase = getLiquibase(connection); List<ChangeSet> changeSets = liquibase.listUnrunChangeSets((Contexts) null); if (!changeSets.isEmpty()) { if (changeSets.get(0).getId().equals(FIRST_VERSION)) { logger.info("Initializing database schema"); } else { if (logger.isLoggable(Level.FINE)) { List<RanChangeSet> ranChangeSets = liquibase.getDatabase().getRanChangeSetList(); final String msg = MessageFormat.format("Updating database from {0} to {1}", ranChangeSets.get(ranChangeSets.size() - 1).getId(), changeSets.get(changeSets.size() - 1).getId()); logger.fine(msg); } else { logger.info("Updating database"); } } liquibase.update((Contexts) null); } } catch (Exception e) { throw new RuntimeException("Failed to update database", e); } logger.fine("Completed database update"); }
if (changeSets.get(0).getId().equals(FIRST_VERSION)) { Statement statement = connection.createStatement(); try { statement.executeQuery("SELECT id FROM " + getTable("REALM", defaultSchema)); logger.infov("Updating database from {0} to {1}", FIRST_VERSION, changeSets.get(changeSets.size() - 1).getId()); liquibase.markNextChangeSetRan(null); } catch (SQLException e) { if (logger.isDebugEnabled()) { List<RanChangeSet> ranChangeSets = liquibase.getDatabase().getRanChangeSetList(); logger.debugv("Updating database from {0} to {1}", ranChangeSets.get(ranChangeSets.size() - 1).getId(), changeSets.get(changeSets.size() - 1).getId()); } else { logger.infov("Updating database");
} else { if (logger.isDebugEnabled()) { logger.debugv("Updating database from {0} to {1}. Using changelog {2}", ranChangeSets.get(ranChangeSets.size() - 1).getId(), changeSets.get(changeSets.size() - 1).getId(), changelog); } else { logger.infov("Updating database. Using changelog {0}", changelog);