mirror of
https://github.com/apache/sqoop.git
synced 2025-05-21 19:31:13 +08:00
SQOOP-1812: Sqoop2: Repository upgrade issue will prevent server startup
(Qian Xu via Abraham Elmahrek)
This commit is contained in:
parent
ae31a02372
commit
c4d5badacf
@ -204,8 +204,11 @@ public int detectRepositoryVersion(Connection conn) {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void createOrUpgradeRepository(Connection conn) {
|
public void createOrUpgradeRepository(Connection conn) {
|
||||||
|
|
||||||
int repositoryVersion = detectRepositoryVersion(conn);
|
int repositoryVersion = detectRepositoryVersion(conn);
|
||||||
|
if (repositoryVersion == DerbyRepoConstants.LATEST_DERBY_REPOSITORY_VERSION) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if(repositoryVersion <= 0) {
|
if(repositoryVersion <= 0) {
|
||||||
runQuery(QUERY_CREATE_SCHEMA_SQOOP, conn);
|
runQuery(QUERY_CREATE_SCHEMA_SQOOP, conn);
|
||||||
runQuery(QUERY_CREATE_TABLE_SQ_CONNECTOR, conn);
|
runQuery(QUERY_CREATE_TABLE_SQ_CONNECTOR, conn);
|
||||||
|
@ -45,12 +45,24 @@ public void testHasLatestRepositoryVersion() throws Exception {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testCreateorUpdateRepositorySchema() throws Exception {
|
public void testCreatorUpdateRepositorySchema() throws Exception {
|
||||||
assertFalse(handler.isRespositorySuitableForUse(getDerbyDatabaseConnection()));
|
assertFalse(handler.isRespositorySuitableForUse(getDerbyDatabaseConnection()));
|
||||||
handler.createOrUpgradeRepository(getDerbyDatabaseConnection());
|
handler.createOrUpgradeRepository(getDerbyDatabaseConnection());
|
||||||
assertTrue(handler.isRespositorySuitableForUse(getDerbyDatabaseConnection()));
|
assertTrue(handler.isRespositorySuitableForUse(getDerbyDatabaseConnection()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDoubleUpdateRepositorySchema() throws Exception {
|
||||||
|
// Setup
|
||||||
|
assertFalse(handler.isRespositorySuitableForUse(getDerbyDatabaseConnection()));
|
||||||
|
handler.createOrUpgradeRepository(getDerbyDatabaseConnection());
|
||||||
|
assertTrue(handler.isRespositorySuitableForUse(getDerbyDatabaseConnection()));
|
||||||
|
|
||||||
|
// Exercise and verify
|
||||||
|
handler.createOrUpgradeRepository(getDerbyDatabaseConnection());
|
||||||
|
assertTrue(handler.isRespositorySuitableForUse(getDerbyDatabaseConnection()));
|
||||||
|
}
|
||||||
|
|
||||||
@Test(expected = SQLIntegrityConstraintViolationException.class)
|
@Test(expected = SQLIntegrityConstraintViolationException.class)
|
||||||
public void testUpgradeVersion4WithNonUniqueJobNameFailure() throws Exception {
|
public void testUpgradeVersion4WithNonUniqueJobNameFailure() throws Exception {
|
||||||
super.createOrUpgradeSchema(4);
|
super.createOrUpgradeSchema(4);
|
||||||
|
Loading…
Reference in New Issue
Block a user