Search in sources :

Example 81 with Liquibase

use of liquibase.Liquibase in project cals-api by ca-cwds.

the class DatabaseHelper method runScript.

public void runScript(String script, Map<String, Object> parameters, String schema) throws LiquibaseException {
    try {
        String defaultSchema = getDatabase().getDefaultSchemaName();
        getDatabase().setDefaultSchemaName(schema);
        Liquibase liquibase = new Liquibase(script, new ClassLoaderResourceAccessor(), getDatabase());
        parameters.forEach(liquibase::setChangeLogParameter);
        liquibase.update((String) null);
        getDatabase().setDefaultSchemaName(defaultSchema);
    } catch (Exception e) {
        throw new LiquibaseException(e);
    }
}
Also used : Liquibase(liquibase.Liquibase) LiquibaseException(liquibase.exception.LiquibaseException) ClassLoaderResourceAccessor(liquibase.resource.ClassLoaderResourceAccessor) SQLException(java.sql.SQLException) LiquibaseException(liquibase.exception.LiquibaseException) DatabaseException(liquibase.exception.DatabaseException)

Example 82 with Liquibase

use of liquibase.Liquibase in project dropwizard by dropwizard.

the class DbLocksCommandTest method testFailsWhenNoListOrRelease.

@Test
void testFailsWhenNoListOrRelease() {
    final Liquibase liquibase = Mockito.mock(Liquibase.class);
    assertThatIllegalArgumentException().isThrownBy(() -> locksCommand.run(new Namespace(Maps.of("list", false, "release", false)), liquibase)).withMessage("Must specify either --list or --force-release");
}
Also used : Liquibase(liquibase.Liquibase) Namespace(net.sourceforge.argparse4j.inf.Namespace) Test(org.junit.jupiter.api.Test)

Example 83 with Liquibase

use of liquibase.Liquibase in project dropwizard by dropwizard.

the class DbLocksCommandTest method testFailsWhenBothListAndRelease.

@Test
void testFailsWhenBothListAndRelease() {
    final Liquibase liquibase = Mockito.mock(Liquibase.class);
    assertThatIllegalArgumentException().isThrownBy(() -> locksCommand.run(new Namespace(Maps.of("list", true, "release", true)), liquibase)).withMessage("Must specify either --list or --force-release");
}
Also used : Liquibase(liquibase.Liquibase) Namespace(net.sourceforge.argparse4j.inf.Namespace) Test(org.junit.jupiter.api.Test)

Example 84 with Liquibase

use of liquibase.Liquibase in project liquibase by liquibase.

the class ChangeLogSyncTask method executeWithLiquibaseClassloader.

@Override
public void executeWithLiquibaseClassloader() throws BuildException {
    Liquibase liquibase = getLiquibase();
    OutputStreamWriter writer = null;
    try {
        FileResource outputFile = getOutputFile();
        if (outputFile != null) {
            writer = new OutputStreamWriter(outputFile.getOutputStream(), getOutputEncoding());
            liquibase.changeLogSync(toTag, new Contexts(getContexts()), getLabels(), writer);
        } else {
            liquibase.changeLogSync(toTag, new Contexts(getContexts()), getLabels());
        }
    } catch (UnsupportedEncodingException e) {
        throw new BuildException("Unable to generate sync SQL. Encoding [" + getOutputEncoding() + "] is not supported.", e);
    } catch (IOException e) {
        throw new BuildException("Unable to generate sync SQL. Error creating output writer.", e);
    } catch (LiquibaseException e) {
        throw new BuildException("Unable to sync change log: " + e.getMessage(), e);
    } finally {
        FileUtils.close(writer);
    }
}
Also used : Liquibase(liquibase.Liquibase) FileResource(org.apache.tools.ant.types.resources.FileResource) UnsupportedEncodingException(java.io.UnsupportedEncodingException) OutputStreamWriter(java.io.OutputStreamWriter) BuildException(org.apache.tools.ant.BuildException) IOException(java.io.IOException) LiquibaseException(liquibase.exception.LiquibaseException) Contexts(liquibase.Contexts)

Example 85 with Liquibase

use of liquibase.Liquibase in project liquibase by liquibase.

the class DropAllTask method executeWithLiquibaseClassloader.

@Override
public void executeWithLiquibaseClassloader() throws BuildException {
    Liquibase liquibase = getLiquibase();
    try {
        if (StringUtil.trimToNull(schemas) != null) {
            List<String> schemaNames = StringUtil.splitAndTrim(this.schemas, ",");
            List<CatalogAndSchema> schemas = new ArrayList<>();
            for (String name : schemaNames) {
                schemas.add(new CatalogAndSchema(catalog, name));
            }
            liquibase.dropAll(schemas.toArray(new CatalogAndSchema[schemas.size()]));
        } else {
            liquibase.dropAll();
        }
    } catch (LiquibaseException e) {
        throw new BuildException("Unable to drop all objects from database: " + e.getMessage(), e);
    }
}
Also used : Liquibase(liquibase.Liquibase) ArrayList(java.util.ArrayList) LiquibaseException(liquibase.exception.LiquibaseException) BuildException(org.apache.tools.ant.BuildException) CatalogAndSchema(liquibase.CatalogAndSchema)

Aggregations

Liquibase (liquibase.Liquibase)125 LiquibaseException (liquibase.exception.LiquibaseException)37 JdbcConnection (liquibase.database.jvm.JdbcConnection)35 Database (liquibase.database.Database)33 ClassLoaderResourceAccessor (liquibase.resource.ClassLoaderResourceAccessor)33 Test (org.junit.Test)30 IOException (java.io.IOException)27 Contexts (liquibase.Contexts)24 SQLException (java.sql.SQLException)23 ResourceAccessor (liquibase.resource.ResourceAccessor)14 ChangeSet (liquibase.changelog.ChangeSet)13 DatabaseException (liquibase.exception.DatabaseException)12 ValidationFailedException (liquibase.exception.ValidationFailedException)12 LabelExpression (liquibase.LabelExpression)11 Connection (java.sql.Connection)10 AbstractIntegrationTest (liquibase.dbtest.AbstractIntegrationTest)10 FileSystemResourceAccessor (liquibase.resource.FileSystemResourceAccessor)10 MojoExecutionException (org.apache.maven.plugin.MojoExecutionException)10 BuildException (org.apache.tools.ant.BuildException)10 LockException (liquibase.exception.LockException)9