Skip to content

Commit ced1cbf

Browse files
committed
Add migration script integration tests
- Implement 4.x to 5.0 migration validation for all supported databases - Add 4.x baseline schema files for migration testing - Use TestContainers for major databases, embedded for others - Auto-disable tests when Docker unavailable Resolves: #4289
1 parent 3bcc525 commit ced1cbf

20 files changed

+1353
-0
lines changed
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
-- Spring Batch 4.x schema for DB2
2+
3+
CREATE TABLE BATCH_JOB_INSTANCE (
4+
JOB_INSTANCE_ID BIGINT NOT NULL PRIMARY KEY,
5+
VERSION BIGINT,
6+
JOB_NAME VARCHAR(100) NOT NULL,
7+
JOB_KEY VARCHAR(32) NOT NULL,
8+
constraint JOB_INST_UN unique (JOB_NAME, JOB_KEY)
9+
) ;
10+
11+
CREATE TABLE BATCH_JOB_EXECUTION (
12+
JOB_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY,
13+
VERSION BIGINT,
14+
JOB_INSTANCE_ID BIGINT NOT NULL,
15+
CREATE_TIME TIMESTAMP NOT NULL,
16+
START_TIME TIMESTAMP DEFAULT NULL,
17+
END_TIME TIMESTAMP DEFAULT NULL,
18+
STATUS VARCHAR(10),
19+
EXIT_CODE VARCHAR(2500),
20+
EXIT_MESSAGE VARCHAR(2500),
21+
LAST_UPDATED TIMESTAMP,
22+
constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID)
23+
references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID)
24+
) ;
25+
26+
CREATE TABLE BATCH_JOB_EXECUTION_PARAMS (
27+
JOB_EXECUTION_ID BIGINT NOT NULL,
28+
TYPE_CD VARCHAR(6) NOT NULL,
29+
KEY_NAME VARCHAR(100) NOT NULL,
30+
STRING_VAL VARCHAR(250),
31+
DATE_VAL TIMESTAMP DEFAULT NULL,
32+
LONG_VAL BIGINT,
33+
DOUBLE_VAL DOUBLE,
34+
IDENTIFYING CHAR(1) NOT NULL,
35+
constraint JOB_EXEC_PARAMS_FK foreign key (JOB_EXECUTION_ID)
36+
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
37+
) ;
38+
39+
CREATE TABLE BATCH_STEP_EXECUTION (
40+
STEP_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY,
41+
VERSION BIGINT NOT NULL,
42+
STEP_NAME VARCHAR(100) NOT NULL,
43+
JOB_EXECUTION_ID BIGINT NOT NULL,
44+
START_TIME TIMESTAMP NOT NULL,
45+
END_TIME TIMESTAMP DEFAULT NULL,
46+
STATUS VARCHAR(10),
47+
COMMIT_COUNT BIGINT,
48+
READ_COUNT BIGINT,
49+
FILTER_COUNT BIGINT,
50+
WRITE_COUNT BIGINT,
51+
READ_SKIP_COUNT BIGINT,
52+
WRITE_SKIP_COUNT BIGINT,
53+
PROCESS_SKIP_COUNT BIGINT,
54+
ROLLBACK_COUNT BIGINT,
55+
EXIT_CODE VARCHAR(2500),
56+
EXIT_MESSAGE VARCHAR(2500),
57+
LAST_UPDATED TIMESTAMP,
58+
constraint JOB_EXEC_STEP_FK foreign key (JOB_EXECUTION_ID)
59+
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
60+
) ;
61+
62+
CREATE TABLE BATCH_STEP_EXECUTION_CONTEXT (
63+
STEP_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY,
64+
SHORT_CONTEXT VARCHAR(2500) NOT NULL,
65+
SERIALIZED_CONTEXT CLOB,
66+
constraint STEP_EXEC_CTX_FK foreign key (STEP_EXECUTION_ID)
67+
references BATCH_STEP_EXECUTION(STEP_EXECUTION_ID)
68+
) ;
69+
70+
CREATE TABLE BATCH_JOB_EXECUTION_CONTEXT (
71+
JOB_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY,
72+
SHORT_CONTEXT VARCHAR(2500) NOT NULL,
73+
SERIALIZED_CONTEXT CLOB,
74+
constraint JOB_EXEC_CTX_FK foreign key (JOB_EXECUTION_ID)
75+
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
76+
) ;
77+
78+
CREATE SEQUENCE BATCH_STEP_EXECUTION_SEQ AS BIGINT MAXVALUE 9223372036854775807 NO CYCLE;
79+
CREATE SEQUENCE BATCH_JOB_EXECUTION_SEQ AS BIGINT MAXVALUE 9223372036854775807 NO CYCLE;
80+
CREATE SEQUENCE BATCH_JOB_SEQ AS BIGINT MAXVALUE 9223372036854775807 NO CYCLE;
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
-- Spring Batch 4.x schema for Derby
2+
3+
CREATE TABLE BATCH_JOB_INSTANCE (
4+
JOB_INSTANCE_ID BIGINT NOT NULL PRIMARY KEY,
5+
VERSION BIGINT,
6+
JOB_NAME VARCHAR(100) NOT NULL,
7+
JOB_KEY VARCHAR(32) NOT NULL,
8+
constraint JOB_INST_UN unique (JOB_NAME, JOB_KEY)
9+
) ;
10+
11+
CREATE TABLE BATCH_JOB_EXECUTION (
12+
JOB_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY,
13+
VERSION BIGINT,
14+
JOB_INSTANCE_ID BIGINT NOT NULL,
15+
CREATE_TIME TIMESTAMP NOT NULL,
16+
START_TIME TIMESTAMP DEFAULT NULL,
17+
END_TIME TIMESTAMP DEFAULT NULL,
18+
STATUS VARCHAR(10),
19+
EXIT_CODE VARCHAR(2500),
20+
EXIT_MESSAGE VARCHAR(2500),
21+
LAST_UPDATED TIMESTAMP,
22+
constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID)
23+
references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID)
24+
) ;
25+
26+
CREATE TABLE BATCH_JOB_EXECUTION_PARAMS (
27+
JOB_EXECUTION_ID BIGINT NOT NULL,
28+
TYPE_CD VARCHAR(6) NOT NULL,
29+
KEY_NAME VARCHAR(100) NOT NULL,
30+
STRING_VAL VARCHAR(250),
31+
DATE_VAL TIMESTAMP DEFAULT NULL,
32+
LONG_VAL BIGINT,
33+
DOUBLE_VAL DOUBLE PRECISION,
34+
IDENTIFYING CHAR(1) NOT NULL,
35+
constraint JOB_EXEC_PARAMS_FK foreign key (JOB_EXECUTION_ID)
36+
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
37+
) ;
38+
39+
CREATE TABLE BATCH_STEP_EXECUTION (
40+
STEP_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY,
41+
VERSION BIGINT NOT NULL,
42+
STEP_NAME VARCHAR(100) NOT NULL,
43+
JOB_EXECUTION_ID BIGINT NOT NULL,
44+
START_TIME TIMESTAMP NOT NULL,
45+
END_TIME TIMESTAMP DEFAULT NULL,
46+
STATUS VARCHAR(10),
47+
COMMIT_COUNT BIGINT,
48+
READ_COUNT BIGINT,
49+
FILTER_COUNT BIGINT,
50+
WRITE_COUNT BIGINT,
51+
READ_SKIP_COUNT BIGINT,
52+
WRITE_SKIP_COUNT BIGINT,
53+
PROCESS_SKIP_COUNT BIGINT,
54+
ROLLBACK_COUNT BIGINT,
55+
EXIT_CODE VARCHAR(2500),
56+
EXIT_MESSAGE VARCHAR(2500),
57+
LAST_UPDATED TIMESTAMP,
58+
constraint JOB_EXEC_STEP_FK foreign key (JOB_EXECUTION_ID)
59+
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
60+
) ;
61+
62+
CREATE TABLE BATCH_STEP_EXECUTION_CONTEXT (
63+
STEP_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY,
64+
SHORT_CONTEXT VARCHAR(2500) NOT NULL,
65+
SERIALIZED_CONTEXT CLOB,
66+
constraint STEP_EXEC_CTX_FK foreign key (STEP_EXECUTION_ID)
67+
references BATCH_STEP_EXECUTION(STEP_EXECUTION_ID)
68+
) ;
69+
70+
CREATE TABLE BATCH_JOB_EXECUTION_CONTEXT (
71+
JOB_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY,
72+
SHORT_CONTEXT VARCHAR(2500) NOT NULL,
73+
SERIALIZED_CONTEXT CLOB,
74+
constraint JOB_EXEC_CTX_FK foreign key (JOB_EXECUTION_ID)
75+
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
76+
) ;
77+
78+
CREATE SEQUENCE BATCH_STEP_EXECUTION_SEQ AS BIGINT MAXVALUE 9223372036854775807 NO CYCLE;
79+
CREATE SEQUENCE BATCH_JOB_EXECUTION_SEQ AS BIGINT MAXVALUE 9223372036854775807 NO CYCLE;
80+
CREATE SEQUENCE BATCH_JOB_SEQ AS BIGINT MAXVALUE 9223372036854775807 NO CYCLE;
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
-- Spring Batch 4.x schema for H2
2+
3+
CREATE TABLE BATCH_JOB_INSTANCE (
4+
JOB_INSTANCE_ID BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
5+
VERSION BIGINT,
6+
JOB_NAME VARCHAR(100) NOT NULL,
7+
JOB_KEY VARCHAR(32) NOT NULL,
8+
constraint JOB_INST_UN unique (JOB_NAME, JOB_KEY)
9+
) ;
10+
11+
CREATE TABLE BATCH_JOB_EXECUTION (
12+
JOB_EXECUTION_ID BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
13+
VERSION BIGINT,
14+
JOB_INSTANCE_ID BIGINT NOT NULL,
15+
CREATE_TIME TIMESTAMP NOT NULL,
16+
START_TIME TIMESTAMP DEFAULT NULL,
17+
END_TIME TIMESTAMP DEFAULT NULL,
18+
STATUS VARCHAR(10),
19+
EXIT_CODE VARCHAR(2500),
20+
EXIT_MESSAGE VARCHAR(2500),
21+
LAST_UPDATED TIMESTAMP,
22+
constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID)
23+
references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID)
24+
) ;
25+
26+
CREATE TABLE BATCH_JOB_EXECUTION_PARAMS (
27+
JOB_EXECUTION_ID BIGINT NOT NULL,
28+
TYPE_CD VARCHAR(6) NOT NULL,
29+
KEY_NAME VARCHAR(100) NOT NULL,
30+
STRING_VAL VARCHAR(250),
31+
DATE_VAL TIMESTAMP DEFAULT NULL,
32+
LONG_VAL BIGINT,
33+
DOUBLE_VAL DOUBLE,
34+
IDENTIFYING CHAR(1) NOT NULL,
35+
constraint JOB_EXEC_PARAMS_FK foreign key (JOB_EXECUTION_ID)
36+
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
37+
) ;
38+
39+
CREATE TABLE BATCH_STEP_EXECUTION (
40+
STEP_EXECUTION_ID BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
41+
VERSION BIGINT NOT NULL,
42+
STEP_NAME VARCHAR(100) NOT NULL,
43+
JOB_EXECUTION_ID BIGINT NOT NULL,
44+
START_TIME TIMESTAMP NOT NULL,
45+
END_TIME TIMESTAMP DEFAULT NULL,
46+
STATUS VARCHAR(10),
47+
COMMIT_COUNT BIGINT,
48+
READ_COUNT BIGINT,
49+
FILTER_COUNT BIGINT,
50+
WRITE_COUNT BIGINT,
51+
READ_SKIP_COUNT BIGINT,
52+
WRITE_SKIP_COUNT BIGINT,
53+
PROCESS_SKIP_COUNT BIGINT,
54+
ROLLBACK_COUNT BIGINT,
55+
EXIT_CODE VARCHAR(2500),
56+
EXIT_MESSAGE VARCHAR(2500),
57+
LAST_UPDATED TIMESTAMP,
58+
constraint JOB_EXEC_STEP_FK foreign key (JOB_EXECUTION_ID)
59+
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
60+
) ;
61+
62+
CREATE TABLE BATCH_STEP_EXECUTION_CONTEXT (
63+
STEP_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY,
64+
SHORT_CONTEXT VARCHAR(2500) NOT NULL,
65+
SERIALIZED_CONTEXT LONGVARCHAR,
66+
constraint STEP_EXEC_CTX_FK foreign key (STEP_EXECUTION_ID)
67+
references BATCH_STEP_EXECUTION(STEP_EXECUTION_ID)
68+
) ;
69+
70+
CREATE TABLE BATCH_JOB_EXECUTION_CONTEXT (
71+
JOB_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY,
72+
SHORT_CONTEXT VARCHAR(2500) NOT NULL,
73+
SERIALIZED_CONTEXT LONGVARCHAR,
74+
constraint JOB_EXEC_CTX_FK foreign key (JOB_EXECUTION_ID)
75+
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
76+
) ;
77+
78+
CREATE SEQUENCE BATCH_STEP_EXECUTION_SEQ;
79+
CREATE SEQUENCE BATCH_JOB_EXECUTION_SEQ;
80+
CREATE SEQUENCE BATCH_JOB_SEQ;
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
-- Spring Batch 4.x schema for HSQLDB
2+
3+
CREATE TABLE BATCH_JOB_INSTANCE (
4+
JOB_INSTANCE_ID BIGINT IDENTITY NOT NULL PRIMARY KEY,
5+
VERSION BIGINT,
6+
JOB_NAME VARCHAR(100) NOT NULL,
7+
JOB_KEY VARCHAR(32) NOT NULL,
8+
constraint JOB_INST_UN unique (JOB_NAME, JOB_KEY)
9+
) ;
10+
11+
CREATE TABLE BATCH_JOB_EXECUTION (
12+
JOB_EXECUTION_ID BIGINT IDENTITY NOT NULL PRIMARY KEY,
13+
VERSION BIGINT,
14+
JOB_INSTANCE_ID BIGINT NOT NULL,
15+
CREATE_TIME TIMESTAMP NOT NULL,
16+
START_TIME TIMESTAMP DEFAULT NULL,
17+
END_TIME TIMESTAMP DEFAULT NULL,
18+
STATUS VARCHAR(10),
19+
EXIT_CODE VARCHAR(2500),
20+
EXIT_MESSAGE VARCHAR(2500),
21+
LAST_UPDATED TIMESTAMP,
22+
constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID)
23+
references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID)
24+
) ;
25+
26+
CREATE TABLE BATCH_JOB_EXECUTION_PARAMS (
27+
JOB_EXECUTION_ID BIGINT NOT NULL,
28+
TYPE_CD VARCHAR(6) NOT NULL,
29+
KEY_NAME VARCHAR(100) NOT NULL,
30+
STRING_VAL VARCHAR(250),
31+
DATE_VAL TIMESTAMP DEFAULT NULL,
32+
LONG_VAL BIGINT,
33+
DOUBLE_VAL DOUBLE,
34+
IDENTIFYING CHAR(1) NOT NULL,
35+
constraint JOB_EXEC_PARAMS_FK foreign key (JOB_EXECUTION_ID)
36+
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
37+
) ;
38+
39+
CREATE TABLE BATCH_STEP_EXECUTION (
40+
STEP_EXECUTION_ID BIGINT IDENTITY NOT NULL PRIMARY KEY,
41+
VERSION BIGINT NOT NULL,
42+
STEP_NAME VARCHAR(100) NOT NULL,
43+
JOB_EXECUTION_ID BIGINT NOT NULL,
44+
START_TIME TIMESTAMP NOT NULL,
45+
END_TIME TIMESTAMP DEFAULT NULL,
46+
STATUS VARCHAR(10),
47+
COMMIT_COUNT BIGINT,
48+
READ_COUNT BIGINT,
49+
FILTER_COUNT BIGINT,
50+
WRITE_COUNT BIGINT,
51+
READ_SKIP_COUNT BIGINT,
52+
WRITE_SKIP_COUNT BIGINT,
53+
PROCESS_SKIP_COUNT BIGINT,
54+
ROLLBACK_COUNT BIGINT,
55+
EXIT_CODE VARCHAR(2500),
56+
EXIT_MESSAGE VARCHAR(2500),
57+
LAST_UPDATED TIMESTAMP,
58+
constraint JOB_EXEC_STEP_FK foreign key (JOB_EXECUTION_ID)
59+
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
60+
) ;
61+
62+
CREATE TABLE BATCH_STEP_EXECUTION_CONTEXT (
63+
STEP_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY,
64+
SHORT_CONTEXT VARCHAR(2500) NOT NULL,
65+
SERIALIZED_CONTEXT LONGVARCHAR,
66+
constraint STEP_EXEC_CTX_FK foreign key (STEP_EXECUTION_ID)
67+
references BATCH_STEP_EXECUTION(STEP_EXECUTION_ID)
68+
) ;
69+
70+
CREATE TABLE BATCH_JOB_EXECUTION_CONTEXT (
71+
JOB_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY,
72+
SHORT_CONTEXT VARCHAR(2500) NOT NULL,
73+
SERIALIZED_CONTEXT LONGVARCHAR,
74+
constraint JOB_EXEC_CTX_FK foreign key (JOB_EXECUTION_ID)
75+
references BATCH_JOB_EXECUTION(JOB_EXECUTION_ID)
76+
) ;
77+
78+
CREATE TABLE BATCH_STEP_EXECUTION_SEQ (
79+
ID BIGINT IDENTITY
80+
);
81+
CREATE TABLE BATCH_JOB_EXECUTION_SEQ (
82+
ID BIGINT IDENTITY
83+
);
84+
CREATE TABLE BATCH_JOB_SEQ (
85+
ID BIGINT IDENTITY
86+
);

0 commit comments

Comments
 (0)