From ec096b473c5441169f5013bca71eb474940ba284 Mon Sep 17 00:00:00 2001 From: Glenn Renfro Date: Thu, 10 Dec 2015 14:32:01 -0500 Subject: [PATCH] SCT-27 Added Oracle, Mysql, Postgres init scripts * Added Mysql to DatabaseTypes Resolves spring-cloud/spring-cloud-task#27 --- .../task/repository/support/DatabaseType.java | 1 + .../support/TaskDatabaseInitializer.java | 5 ++++- .../cloud/task/schema-mysql.sql | 18 ++++++++++++++++++ .../cloud/task/schema-oracle10g.sql | 18 ++++++++++++++++++ .../cloud/task/schema-postgresql.sql | 18 ++++++++++++++++++ 5 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 spring-cloud-task-core/src/main/resources/org/springframework/cloud/task/schema-mysql.sql create mode 100644 spring-cloud-task-core/src/main/resources/org/springframework/cloud/task/schema-oracle10g.sql create mode 100644 spring-cloud-task-core/src/main/resources/org/springframework/cloud/task/schema-postgresql.sql diff --git a/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/support/DatabaseType.java b/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/support/DatabaseType.java index d98d68f3..2f436f4e 100644 --- a/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/support/DatabaseType.java +++ b/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/support/DatabaseType.java @@ -37,6 +37,7 @@ public enum DatabaseType { HSQL("HSQL Database Engine"), ORACLE("Oracle"), + MYSQL("MySQL"), POSTGRES("PostgreSQL"); private static final Map dbNameMap; diff --git a/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/support/TaskDatabaseInitializer.java b/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/support/TaskDatabaseInitializer.java index b98a97e8..f6a2f2d0 100644 --- a/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/support/TaskDatabaseInitializer.java +++ b/spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/support/TaskDatabaseInitializer.java @@ -53,11 +53,14 @@ public class TaskDatabaseInitializer { if ("oracle".equals(platform)) { platform = "oracle10g"; } + if ("mysql".equals(platform)) { + platform = "mysql"; + } ResourceDatabasePopulator populator = new ResourceDatabasePopulator(); String schemaLocation = schema; schemaLocation = schemaLocation.replace("@@platform@@", platform); populator.addScript(resourceLoader.getResource(schemaLocation)); - populator.setContinueOnError(false); + populator.setContinueOnError(true); logger.debug(String.format("Initializing task schema for %s database", platform)); DatabasePopulatorUtils.execute(populator, dataSource); diff --git a/spring-cloud-task-core/src/main/resources/org/springframework/cloud/task/schema-mysql.sql b/spring-cloud-task-core/src/main/resources/org/springframework/cloud/task/schema-mysql.sql new file mode 100644 index 00000000..b32107a6 --- /dev/null +++ b/spring-cloud-task-core/src/main/resources/org/springframework/cloud/task/schema-mysql.sql @@ -0,0 +1,18 @@ + +CREATE TABLE TASK_EXECUTION ( + TASK_EXECUTION_ID VARCHAR(100) NOT NULL PRIMARY KEY , + START_TIME DATETIME DEFAULT NULL , + END_TIME DATETIME DEFAULT NULL , + TASK_NAME VARCHAR(100) , + EXIT_CODE INTEGER , + EXIT_MESSAGE VARCHAR(2500) , + LAST_UPDATED TIMESTAMP , + STATUS_CODE VARCHAR(10) +); + +CREATE TABLE TASK_EXECUTION_PARAMS ( + TASK_EXECUTION_ID VARCHAR(100) NOT NULL , + TASK_PARAM VARCHAR(250) , + constraint TASK_EXEC_PARAMS_FK foreign key (TASK_EXECUTION_ID) + references TASK_EXECUTION(TASK_EXECUTION_ID) +) ; diff --git a/spring-cloud-task-core/src/main/resources/org/springframework/cloud/task/schema-oracle10g.sql b/spring-cloud-task-core/src/main/resources/org/springframework/cloud/task/schema-oracle10g.sql new file mode 100644 index 00000000..8aac33be --- /dev/null +++ b/spring-cloud-task-core/src/main/resources/org/springframework/cloud/task/schema-oracle10g.sql @@ -0,0 +1,18 @@ + +CREATE TABLE TASK_EXECUTION ( + TASK_EXECUTION_ID VARCHAR2(100) NOT NULL PRIMARY KEY , + START_TIME TIMESTAMP DEFAULT NULL , + END_TIME TIMESTAMP DEFAULT NULL , + TASK_NAME VARCHAR2(100) , + EXIT_CODE INTEGER , + EXIT_MESSAGE VARCHAR2(2500) , + LAST_UPDATED TIMESTAMP , + STATUS_CODE VARCHAR2(10) +); + +CREATE TABLE TASK_EXECUTION_PARAMS ( + TASK_EXECUTION_ID VARCHAR2(100) NOT NULL , + TASK_PARAM VARCHAR2(250) , + constraint TASK_EXEC_PARAMS_FK foreign key (TASK_EXECUTION_ID) + references TASK_EXECUTION(TASK_EXECUTION_ID) +) ; diff --git a/spring-cloud-task-core/src/main/resources/org/springframework/cloud/task/schema-postgresql.sql b/spring-cloud-task-core/src/main/resources/org/springframework/cloud/task/schema-postgresql.sql new file mode 100644 index 00000000..0901c276 --- /dev/null +++ b/spring-cloud-task-core/src/main/resources/org/springframework/cloud/task/schema-postgresql.sql @@ -0,0 +1,18 @@ + +CREATE TABLE TASK_EXECUTION ( + TASK_EXECUTION_ID VARCHAR(100) NOT NULL PRIMARY KEY , + START_TIME TIMESTAMP DEFAULT NULL , + END_TIME TIMESTAMP DEFAULT NULL , + TASK_NAME VARCHAR(100) , + EXIT_CODE INTEGER , + EXIT_MESSAGE VARCHAR(2500) , + LAST_UPDATED TIMESTAMP , + STATUS_CODE VARCHAR(10) +); + +CREATE TABLE TASK_EXECUTION_PARAMS ( + TASK_EXECUTION_ID VARCHAR(100) NOT NULL , + TASK_PARAM VARCHAR(250) , + constraint TASK_EXEC_PARAMS_FK foreign key (TASK_EXECUTION_ID) + references TASK_EXECUTION(TASK_EXECUTION_ID) +) ;