/** * 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)); }
changeSet = new ChangeSet(atts.getValue("id"), atts.getValue("author"), alwaysRun, runOnChange, filePath, atts.getValue("context"), atts.getValue("dbms"), Boolean.valueOf(atts quotingStrategy, databaseChangeLog); if (StringUtils.trimToNull(atts.getValue("failOnError")) != null) { changeSet.setFailOnError(Boolean.parseBoolean(atts.getValue("failOnError"))); changeSet.setOnValidationFail(ChangeSet.ValidationFailOption.valueOf(atts .getValue("onValidationFail"))); changeSet.setChangeLogParameters(changeLogParameters); + ":" + id); } else { for (Change change : changeSet.getChanges()) { this.changeSet.addRollbackChange(change); sqlVisitor.setContexts(modifySqlContexts); changeSet.addSqlVisitor(sqlVisitor); } else if ((changeSet != null) && (change == null)) { change = changeFactory.create(localName);
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"); }
handlePreCondition(rootPrecondition); } else { changeSet.setPreconditions(rootPrecondition); changeSet.addRollBackSQL(textString); inRollback = false; } else if ((change != null) && (change instanceof RawSQLChange) && "comment".equals(qName)) { paramName = null; } else if ((changeSet != null) && "comment".equals(qName)) { changeSet.setComments(textString); text = new StringBuffer(); } else if ((changeSet != null) && "changeSet".equals(qName)) { changeSet.addRollbackChange(change); } else { changeSet.addChange(change); changeSet.addValidCheckSum(text.toString()); text = null; } else if ("modifySql".equals(qName)) {
@Override public Element createNode(LiquibaseSerializable object) { Element element = super.createNode(object); if (object instanceof ChangeSet) { ChangeSet changeSet = (ChangeSet) object; changeSet.getChanges().forEach(change -> { if (change instanceof CreateIndexChange) { CreateIndexChange cic = (CreateIndexChange) change; if (cic.getColumns().size() != 1) { return; } ColumnDescription cd = this.currentSnapshot .getColumnDescriptionByIndexId(cic.getIndexName()); String indexType = cd != null ? cd.getIndexType() : null; if (indexType != null) { Document doc = element.getOwnerDocument(); Element modifySqlElement = doc.createElement("modifySql"); Element replaceElement = doc.createElement("regExpReplace"); replaceElement.setAttribute("replace", "\\(.+\\)"); replaceElement.setAttribute("with", String.format(" USING %s $0", indexType)); modifySqlElement.appendChild(replaceElement); element.appendChild(modifySqlElement); } } }); } return element; } }
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");
List<ChangeSet> changeSets = changeLogs.getChangeSets(); for(ChangeSet changeSet: changeSets){ for(Change change: changeSet.getChanges()){ SqlStatement[] statements = change.generateStatements(database); Sql[] sqls = SqlGeneratorFactory.getInstance().generateSql(statements, 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);
List<ChangeSet> changeSets = changeLogs.getChangeSets(); for(ChangeSet changeSet: changeSets){ for(Change change: changeSet.getChanges()){ SqlStatement[] statements = change.generateStatements(database); Sql[] sqls = SqlGeneratorFactory.getInstance().generateSql(statements, database);