Project

General

Profile

« Previous | Next » 

Revision 30178240

Added by Andreas Müller almost 11 years ago

remove dummy terms with update script #3706

View differences:

cdmlib-model/src/main/resources/terms/InstitutionType.csv
1 1
"29ad808b-3126-4274-be81-4561e7afc76f",,"Institution Type","Institution Type","IT","0"
2
"bea94a6c-472b-421c-abc1-52f797c51dbf",,"institution_type_dummy","itdummy","i","itd",
2
"9b2726b3-ea93-4b99-baea-2eeb4e9c99b5",,"Botanical Garden","Botanical Garden","BG"
3
"d19163be-fb60-4c5f-9db8-8ac50f743e22",,"Natural History Museum","Natural History Museum","NHM"
4
"8b67ae90-4d84-481e-9f77-4d5eccfcf828",,"University","University","UNI"
cdmlib-model/src/main/resources/terms/PreservationMethod.csv
1
"a7dc20c9-e6b3-459e-8f05-8d6d8fceb465",,"Preservation Method","Preservation Method","PRM","1"
2
"3edc2633-365b-4a9b-bc3a-f3f85f59dbdf",,"preservation_method_dummy","pmdummy","pmd",
1
"a7dc20c9-e6b3-459e-8f05-8d6d8fceb465",,"Preservation Method","Preservation Method","PRM","1"
cdmlib-model/src/main/resources/terms/State.csv
1
"ceb65a53-c6cf-42bb-862f-daca7f2fc11d",,"State","State","STA","1"
2
"881b9c80-626d-47a6-b308-a63ee5f4178f",,"state_dummy","stdummy","std",
1
"ceb65a53-c6cf-42bb-862f-daca7f2fc11d",,"State","State","STA","1"
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/SingleTermRemover.java
69 69
		}
70 70
		
71 71
		//check if in use
72
		if (! checkTermInUse(datasource, monitor, id)){
72
		if (checkTermInUse(datasource, monitor, id)){
73 73
			return 0;
74 74
		}
75 75
		
......
83 83
		
84 84
		//get representation ids
85 85
		List<Integer> repIDs = new ArrayList<Integer>();
86
		getRepIds(datasource, id, repIDs, "representations_id", "DefinedTermBase_Representation");
86
		getRepIds(datasource, id, repIDs, "representations_id", "DefinedTermBase_Representation" );
87 87
		getRepIds(datasource, id, repIDs, "inverserepresentations_id", "RelationshipTermBase_inverseRepresentation");
88 88
		
89 89
		//remove MN table
......
105 105

  
106 106
	private void getRepIds(ICdmDataSource datasource, int id,
107 107
			List<Integer> repIDs, String mnRepresentationIdAttr, String mnTableName) throws SQLException {
108
		String sql = " SELECT DISTINCT %s as repId FROM %s WHERE @mnTermIdName = %d";
108
		String sql = " SELECT DISTINCT %s as repId FROM %s WHERE DefinedTermBase_id = %d";
109 109
		sql = String.format(sql, mnRepresentationIdAttr, mnTableName, id);
110 110
		ResultSet rs = datasource.executeQuery(sql);
111 111
		while (rs.next()){
......
119 119
	private boolean checkTermInUse(ICdmDataSource datasource, IProgressMonitor monitor, int id) throws SQLException {
120 120
		for (String query : checkUsedQueries){
121 121
			query = String.format(query, id);
122
			Integer i = (Integer)datasource.getSingleValue(query);
123
			if (i != null && i>0){
122
			Number i = (Number)datasource.getSingleValue(query);
123
			if (i != null && (Long)i > 0.0){
124 124
				return true;
125 125
			}
126 126
		}
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/v31_33/SchemaUpdater_31_33.java
1456 1456
				" WHERE dtb.uuid = '881b9c80-626d-47a6-b308-a63ee5f4178f' ";
1457 1457
		step = SimpleSchemaUpdaterStep.NewNonAuditedInstance(stepName, query);
1458 1458
		stepList.add(step);
1459

  
1460
		stepName = "Update idInVocabulary for dummy stage";
1461
		query = " UPDATE DefinedTermBase dtb " +
1462
				" SET dtb.idinvocabulary = 'sgd' " +
1463
				" WHERE dtb.uuid = '48f8e8a7-a2ac-4974-9ce8-6944afc5095e' ";
1464
		step = SimpleSchemaUpdaterStep.NewNonAuditedInstance(stepName, query);
1465
		stepList.add(step);
1466

  
1467
		stepName = "Update idInVocabulary for dummy modifier";
1468
		query = " UPDATE DefinedTermBase dtb " +
1469
				" SET dtb.idinvocabulary = 'md' " +
1470
				" WHERE dtb.uuid = 'efc38dad-205c-4028-ad9d-ae509a14b37a' ";
1471
		step = SimpleSchemaUpdaterStep.NewNonAuditedInstance(stepName, query);
1472
		stepList.add(step);
1473

  
1474
		//Remove state dummy
1475
		stepName = "Remove state dummy if possible";
1476
		uuid = "881b9c80-626d-47a6-b308-a63ee5f4178f";
1477
		String checkUsed = " SELECT count(*) as n FROM StateData sd " +
1478
				" WHERE sd.state_id = %d ";
1479
		step = SingleTermRemover.NewInstance(stepName, uuid, checkUsed);
1480
		stepList.add(step);
1459 1481
		
1460
		//Reomve institution type dummy
1461
		//TODO seems not to work
1482
		//Remove institution type dummy
1462 1483
		stepName = "Remove institution type dummy term";
1463
		uuid = "29ad808b-3126-4274-be81-4561e7afc76f";
1464
		String checkUsed = " SELECT count(*) as n FROM AgentBase_DefinedTermBase MN " +
1484
		uuid = "bea94a6c-472b-421c-abc1-52f797c51dbf";
1485
		checkUsed = " SELECT count(*) as n FROM AgentBase_DefinedTermBase MN " +
1465 1486
				" WHERE MN.types_id = %d ";
1466 1487
		step = SingleTermRemover.NewInstance(stepName, uuid, checkUsed);
1467 1488
		stepList.add(step);
1489

  
1490
		//Remove scope dummy
1491
		stepName = "Remove scope dummy term";
1492
		uuid = "2ace7f1f-4ce6-47e1-8a65-e3f6b724876c";
1493
		checkUsed = " SELECT count(*) as n FROM DescriptionBase_Scope MN " +
1494
				" WHERE MN.scopes_id = %d ";
1495
		step = SingleTermRemover.NewInstance(stepName, uuid, checkUsed);
1496
		stepList.add(step);
1497
		
1498
		//Remove stage dummy
1499
		stepName = "Remove stage dummy term";
1500
		uuid = "48f8e8a7-a2ac-4974-9ce8-6944afc5095e";
1501
		checkUsed = " SELECT count(*) as n FROM DescriptionBase_Scope MN " +
1502
				" WHERE MN.scopes_id = %d ";
1503
		String checkUsed2 = " SELECT count(*) as n FROM SpecimenOrObservationBase osb " +
1504
				" WHERE osb.lifestage_id =  %d ";
1505
		step = SingleTermRemover.NewInstance(stepName, uuid, checkUsed)
1506
				.addCheckUsedQuery(checkUsed2);
1507
		stepList.add(step);
1508

  
1509
		//Remove text format dummy
1510
		stepName = "Remove text format dummy if possible";
1511
		uuid = "5d095782-d99c-46bc-a158-edb2e47c9b63";
1512
		checkUsed = " SELECT count(*) as n FROM DescriptionElementBase deb " +
1513
				" WHERE deb.format_id = %d ";
1514
		step = SingleTermRemover.NewInstance(stepName, uuid, checkUsed);
1515
		stepList.add(step);
1516

  
1517
		//Remove modifier dummy
1518
		stepName = "Remove modifier dummy if possible";
1519
		uuid = "efc38dad-205c-4028-ad9d-ae509a14b37a";
1520
		checkUsed = " SELECT count(*) as n FROM DescriptionElementBase_Modifier MN " +
1521
				" WHERE MN.modifiers_id = %d ";
1522
		checkUsed2 = " SELECT count(*) as n FROM StateData_DefinedTermBase MN " +
1523
				" WHERE MN.modifiers_id = %d ";
1524
		String checkUsed3 = " SELECT count(*) as n FROM StatisticalMeasurementValue_DefinedTermBase MN " +
1525
				" WHERE MN.modifiers_id = %d ";
1526
		step = SingleTermRemover.NewInstance(stepName, uuid, checkUsed)
1527
				.addCheckUsedQuery(checkUsed2)
1528
				.addCheckUsedQuery(checkUsed3);
1529
		stepList.add(step);
1530
		
1531
		//Remove text preservation method dummy
1532
		stepName = "Remove preservation method dummy if possible";
1533
		uuid = "3edc2633-365b-4a9b-bc3a-f3f85f59dbdf";
1534
		checkUsed = " SELECT count(*) as n FROM SpecimenOrObservationBase osb " +
1535
				" WHERE osb.preservation_id =  %d ";
1536
		step = SingleTermRemover.NewInstance(stepName, uuid, checkUsed);
1537
		stepList.add(step);
1538
		
1539
		
1468 1540
		
1469 1541
		//Split WaterbodyOrCountry Vocabulary  #3700
1470 1542
		stepName = "Create Waterbody vocabulary";

Also available in: Unified diff