[jOOQ/jOOQ#13031] Add a rootPath property to the LiquibaseDatabase
configuration for the FileSystemResourceAccessor
This commit is contained in:
parent
fe9e8854ea
commit
9c1a9a2bb3
@ -39,12 +39,12 @@ package org.jooq.meta.extensions.liquibase;
|
||||
|
||||
import static org.jooq.tools.StringUtils.isBlank;
|
||||
|
||||
import java.io.File;
|
||||
import java.lang.reflect.Method;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
@ -53,6 +53,7 @@ import org.jooq.meta.TableDefinition;
|
||||
import org.jooq.meta.extensions.AbstractInterpretingDatabase;
|
||||
import org.jooq.tools.Convert;
|
||||
import org.jooq.tools.JooqLogger;
|
||||
import org.jooq.tools.StringUtils;
|
||||
|
||||
import liquibase.Liquibase;
|
||||
import liquibase.database.Database;
|
||||
@ -61,6 +62,7 @@ import liquibase.database.jvm.JdbcConnection;
|
||||
import liquibase.resource.ClassLoaderResourceAccessor;
|
||||
import liquibase.resource.CompositeResourceAccessor;
|
||||
import liquibase.resource.FileSystemResourceAccessor;
|
||||
import liquibase.resource.ResourceAccessor;
|
||||
|
||||
/**
|
||||
* The Liquibase database.
|
||||
@ -100,6 +102,7 @@ public class LiquibaseDatabase extends AbstractInterpretingDatabase {
|
||||
|
||||
@Override
|
||||
protected void export() throws Exception {
|
||||
String rootPath = getProperties().getProperty("rootPath");
|
||||
String scripts = getProperties().getProperty("scripts");
|
||||
includeLiquibaseTables = Boolean.parseBoolean(getProperties().getProperty("includeLiquibaseTables", "false"));
|
||||
|
||||
@ -143,27 +146,15 @@ public class LiquibaseDatabase extends AbstractInterpretingDatabase {
|
||||
databaseChangeLogLockTableName = database.getDatabaseChangeLogLockTableName();
|
||||
|
||||
// [#9866] Allow for loading included files from the classpath or using absolute paths.
|
||||
FileSystemResourceAccessor fsra;
|
||||
|
||||
try {
|
||||
fsra = new FileSystemResourceAccessor();
|
||||
}
|
||||
|
||||
// [#11659] Continue supporting Liquibase 3.x
|
||||
catch (NoSuchMethodError e) {
|
||||
fsra = FileSystemResourceAccessor.class.getConstructor().newInstance();
|
||||
}
|
||||
|
||||
Liquibase liquibase = new Liquibase(
|
||||
scripts,
|
||||
new CompositeResourceAccessor(
|
||||
fsra,
|
||||
// [#12872] [#13021] The decision is made based on the presence of the rootPath property
|
||||
ResourceAccessor ra = StringUtils.isBlank(rootPath)
|
||||
? new CompositeResourceAccessor(
|
||||
new ClassLoaderResourceAccessor(),
|
||||
new ClassLoaderResourceAccessor(Thread.currentThread().getContextClassLoader())
|
||||
),
|
||||
database
|
||||
);
|
||||
)
|
||||
: new FileSystemResourceAccessor(new File(rootPath));
|
||||
|
||||
Liquibase liquibase = new Liquibase(scripts, ra, database);
|
||||
liquibase.update(contexts);
|
||||
}
|
||||
|
||||
|
||||
2
pom.xml
2
pom.xml
@ -50,7 +50,7 @@
|
||||
|
||||
<!-- Examples and/or extension modules use these dependencies -->
|
||||
<hibernate.version>5.6.1.Final</hibernate.version>
|
||||
<liquibase.version>4.4.1</liquibase.version>
|
||||
<liquibase.version>4.4.3</liquibase.version>
|
||||
<spring.version>5.3.14</spring.version>
|
||||
<spring.boot.version>2.6.1</spring.boot.version>
|
||||
<!-- [#12884] TODO: Remove explicit upgrade of protobuf-java again when https://github.com/google/error-prone/pull/2819 is released -->
|
||||
|
||||
Loading…
Reference in New Issue
Block a user