5
0
mirror of https://github.com/apache/sqoop.git synced 2025-05-21 11:21:39 +08:00

SQOOP-1812: Sqoop2: Repository upgrade issue will prevent server startup

(Qian Xu via Abraham Elmahrek)
This commit is contained in:
Abraham Elmahrek 2014-12-04 00:02:01 -08:00
parent ae31a02372
commit c4d5badacf
2 changed files with 17 additions and 2 deletions

View File

@ -204,8 +204,11 @@ public int detectRepositoryVersion(Connection conn) {
*/
@Override
public void createOrUpgradeRepository(Connection conn) {
int repositoryVersion = detectRepositoryVersion(conn);
if (repositoryVersion == DerbyRepoConstants.LATEST_DERBY_REPOSITORY_VERSION) {
return;
}
if(repositoryVersion <= 0) {
runQuery(QUERY_CREATE_SCHEMA_SQOOP, conn);
runQuery(QUERY_CREATE_TABLE_SQ_CONNECTOR, conn);

View File

@ -45,12 +45,24 @@ public void testHasLatestRepositoryVersion() throws Exception {
}
@Test
public void testCreateorUpdateRepositorySchema() throws Exception {
public void testCreatorUpdateRepositorySchema() throws Exception {
assertFalse(handler.isRespositorySuitableForUse(getDerbyDatabaseConnection()));
handler.createOrUpgradeRepository(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)
public void testUpgradeVersion4WithNonUniqueJobNameFailure() throws Exception {
super.createOrUpgradeSchema(4);