/** * Return a programmatic JDBC migration. */ private LocalMigrationResource createJdbcMigration(Resource resource, String filename) { int pos = filename.lastIndexOf(".class"); String mainName = filename.substring(0, pos); MigrationVersion migrationVersion = MigrationVersion.parse(mainName); String className = resource.getLocation().replace('/', '.'); className = className.substring(0, className.length()-6); JdbcMigration instance = migrationConfig.getJdbcMigrationFactory().createInstance(className); return new LocalJdbcMigrationResource(migrationVersion, resource.getLocation(), instance); }
/** * Create a script based migration. */ private LocalMigrationResource createScriptMigration(Resource resource, String filename) { int pos = filename.lastIndexOf(migrationConfig.getApplySuffix()); String mainName = filename.substring(0, pos); MigrationVersion migrationVersion = MigrationVersion.parse(mainName); return new LocalDdlMigrationResource(migrationVersion, resource.getLocation(), resource); }
/** * Read all the migration resources (SQL scripts) returning true if there are versions. */ public boolean readResources() { String migrationPath = migrationConfig.getMigrationPath(); ClassLoader classLoader = migrationConfig.getClassLoader(); Scanner scanner = new Scanner(classLoader); List<Resource> resourceList = scanner.scanForResources(migrationPath, new Match(migrationConfig)); logger.debug("resources: {}", resourceList); for (Resource resource : resourceList) { String filename = resource.getFilename(); if (filename.endsWith(migrationConfig.getApplySuffix())) { int pos = filename.lastIndexOf(migrationConfig.getApplySuffix()); String mainName = filename.substring(0, pos); MigrationVersion migrationVersion = MigrationVersion.parse(mainName); LocalMigrationResource res = new LocalMigrationResource(migrationVersion, resource.getLocation(), resource); versions.add(res); } } Collections.sort(versions); return !versions.isEmpty(); }
/** * Read all the migration resources (SQL scripts) returning true if there are versions. */ public boolean readResources() { String migrationPath = migrationConfig.getMigrationPath(); ClassLoader classLoader = migrationConfig.getClassLoader(); Scanner scanner = new Scanner(classLoader); List<Resource> resourceList = scanner.scanForResources(migrationPath, new Match(migrationConfig)); logger.debug("resources: {}", resourceList); for (Resource resource : resourceList) { String filename = resource.getFilename(); if (filename.endsWith(migrationConfig.getApplySuffix())) { int pos = filename.lastIndexOf(migrationConfig.getApplySuffix()); String mainName = filename.substring(0, pos); MigrationVersion migrationVersion = MigrationVersion.parse(mainName); LocalMigrationResource res = new LocalMigrationResource(migrationVersion, resource.getLocation(), resource); versions.add(res); } } Collections.sort(versions); return !versions.isEmpty(); }