diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/DatabaseMigratorMain.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/DatabaseMigratorMain.java index d22b9b0ad9e16011d71b4227b04667f9459b6a3a..df58e32800627cafd924cdf24c4ad7f461ddee61 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/DatabaseMigratorMain.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/DatabaseMigratorMain.java @@ -14,6 +14,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DatabaseMigratorMain implements CommandLineRunner { + public static DatabaseType databaseType; + private static final Logger LOGGER = LoggerFactory.getLogger(DatabaseMigratorMain.class); private final JobLauncher jobLauncher; @@ -48,6 +50,8 @@ public class DatabaseMigratorMain implements CommandLineRunner LOGGER.debug("{}={}", option.getName(), cmd.getOptionValue(option.getName())); } + databaseType = DatabaseType.fromDriverClassName(cmd.getOptionValue(CommandLineOptions.DESTINATION_DRIVER_CLASS_NAME.getName())); + SpringApplication.run(DatabaseMigratorMain.class, args); } diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/DatabaseType.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/DatabaseType.java new file mode 100644 index 0000000000000000000000000000000000000000..0725be4210c00e3170f799167d244b5a3738b953 --- /dev/null +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/DatabaseType.java @@ -0,0 +1,33 @@ +package de.deadlocker8.budgetmaster.databasemigrator; + +public enum DatabaseType +{ + POSTGRESQL("org.postgresql.Driver"), + MARIADB( "org.mariadb.jdbc.Driver"); + + private final String driverClassName; + + DatabaseType(String driverClassName) + { + this.driverClassName = driverClassName; + } + + + public String getDriverClassName() + { + return driverClassName; + } + + public static DatabaseType fromDriverClassName(String driverClassName) + { + for(DatabaseType type : values()) + { + if(type.getDriverClassName().equalsIgnoreCase(driverClassName)) + { + return type; + } + } + + return null; + } +} \ No newline at end of file diff --git a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/listener/GenericStepListener.java b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/listener/GenericStepListener.java index 075a6ffade7bb465f7f470723197f6e4a5e4eaec..270a657a71d3ed01ad286f205f10985b15e22b4a 100644 --- a/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/listener/GenericStepListener.java +++ b/BudgetMasterDatabaseMigrator/src/main/java/de/deadlocker8/budgetmaster/databasemigrator/listener/GenericStepListener.java @@ -1,5 +1,7 @@ package de.deadlocker8.budgetmaster.databasemigrator.listener; +import de.deadlocker8.budgetmaster.databasemigrator.DatabaseMigratorMain; +import de.deadlocker8.budgetmaster.databasemigrator.DatabaseType; import de.deadlocker8.budgetmaster.databasemigrator.Utils; import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationIntegerRepository; import de.deadlocker8.budgetmaster.databasemigrator.destination.DestinationRepository; @@ -37,7 +39,7 @@ public class GenericStepListener<T extends ProvidesID, ID> implements StepExecut LOGGER.info("\n"); LOGGER.info(">>> Migrate {}s...", tableName); - if(adjustSequence) + if(adjustSequence && DatabaseMigratorMain.databaseType.equals(DatabaseType.POSTGRESQL)) { LOGGER.debug("Resetting sequence to 0"); jdbcTemplate.update(MessageFormat.format("ALTER SEQUENCE {0}_id_seq RESTART WITH 1", tableName)); @@ -50,7 +52,7 @@ public class GenericStepListener<T extends ProvidesID, ID> implements StepExecut final int count = Utils.getCommitCount(stepExecution); LOGGER.info(">>> Successfully migrated {} {}s\n", count, tableName); - if(adjustSequence) + if(adjustSequence && DatabaseMigratorMain.databaseType.equals(DatabaseType.POSTGRESQL)) { final int highestUsedID = getHighestUsedID(); final int newSequence = highestUsedID + 1;