private Liquibase getLiquibase(Connection connection) throws Exception { ServiceLocator sl = ServiceLocator.getInstance(); if (!System.getProperties().containsKey("liquibase.scan.packages")) { if (sl.getPackages().remove("liquibase.core")) { sl.addPackageToScan("liquibase.core.xml"); } if (sl.getPackages().remove("liquibase.parser")) { sl.addPackageToScan("liquibase.parser.core.xml"); } if (sl.getPackages().remove("liquibase.serializer")) { sl.addPackageToScan("liquibase.serializer.core.xml"); } sl.getPackages().remove("liquibase.ext"); sl.getPackages().remove("liquibase.sdk"); } LogFactory.setInstance(new LogWrapper()); Database database = DatabaseFactory.getInstance().findCorrectDatabaseImplementation(new JdbcConnection(connection)); return new Liquibase(CHANGELOG, new ClassLoaderResourceAccessor(getClass().getClassLoader()), database); }
private Liquibase getLiquibase(Connection connection, String defaultSchema) throws Exception { ServiceLocator sl = ServiceLocator.getInstance(); if (!System.getProperties().containsKey("liquibase.scan.packages")) { if (sl.getPackages().remove("liquibase.core")) { sl.addPackageToScan("liquibase.core.xml"); } if (sl.getPackages().remove("liquibase.parser")) { sl.addPackageToScan("liquibase.parser.core.xml"); } if (sl.getPackages().remove("liquibase.serializer")) { sl.addPackageToScan("liquibase.serializer.core.xml"); } sl.getPackages().remove("liquibase.ext"); sl.getPackages().remove("liquibase.sdk"); } LogFactory.setInstance(new LogWrapper()); Database database = DatabaseFactory.getInstance().findCorrectDatabaseImplementation(new JdbcConnection(connection)); if (defaultSchema != null) { database.setDefaultSchemaName(defaultSchema); } return new Liquibase(CHANGELOG, new ClassLoaderResourceAccessor(getClass().getClassLoader()), database); }
protected void baseLiquibaseInitialization() { ServiceLocator sl = ServiceLocator.getInstance(); sl.setResourceAccessor(new ClassLoaderResourceAccessor(getClass().getClassLoader())); if (!System.getProperties().containsKey("liquibase.scan.packages")) { if (sl.getPackages().remove("liquibase.core")) { sl.addPackageToScan("liquibase.core.xml"); } if (sl.getPackages().remove("liquibase.parser")) { sl.addPackageToScan("liquibase.parser.core.xml"); } if (sl.getPackages().remove("liquibase.serializer")) { sl.addPackageToScan("liquibase.serializer.core.xml"); } sl.getPackages().remove("liquibase.ext"); sl.getPackages().remove("liquibase.sdk"); String lockPackageName = DummyLockService.class.getPackage().getName(); logger.debugf("Added package %s to liquibase", lockPackageName); sl.addPackageToScan(lockPackageName); } LogFactory.setInstance(new LogWrapper()); // Adding PostgresPlus support to liquibase DatabaseFactory.getInstance().register(new PostgresPlusDatabase()); // Adding newer version of MySQL/MariaDB support to liquibase DatabaseFactory.getInstance().register(new UpdatedMySqlDatabase()); // Change command for creating lock and drop DELETE lock record from it SqlGeneratorFactory.getInstance().register(new CustomInsertLockRecordGenerator()); // Use "SELECT FOR UPDATE" for locking database SqlGeneratorFactory.getInstance().register(new CustomLockDatabaseChangeLogGenerator()); }