63091c7224747e49c600c8bd5e6e9ea6d5c30814
[cdmlib-apps.git] / app-import / src / main / java / eu / etaxonomy / cdm / database / update / BgbmInstancesUpdater.java
1 /**
2 *
3 */
4 package eu.etaxonomy.cdm.database.update;
5
6 import org.apache.log4j.Logger;
7
8 import eu.etaxonomy.cdm.api.application.CdmApplicationController;
9 import eu.etaxonomy.cdm.common.AccountStore;
10 import eu.etaxonomy.cdm.common.monitor.DefaultProgressMonitor;
11 import eu.etaxonomy.cdm.database.CdmDataSource;
12 import eu.etaxonomy.cdm.database.DbSchemaValidation;
13 import eu.etaxonomy.cdm.database.ICdmDataSource;
14 import eu.etaxonomy.cdm.io.api.application.CdmIoApplicationController;
15 import eu.etaxonomy.cdm.model.taxon.Classification;
16
17 /**
18 * @author a.mueller
19 *
20 */
21 public class BgbmInstancesUpdater {
22 private static final Logger logger = Logger.getLogger(BgbmInstancesUpdater.class);
23
24 private static String integrationServer = "160.45.63.201";
25 private static String productionServer = "160.45.63.171";
26 // private static String testServer = "160.45.63.175";
27 private static String testServer = "edit-test.bgbm.fu-berlin.de"; //preliminary
28
29 private static String[] integrationDatabases = new String[]{/**/"cdm_integration_cichorieae",
30 "cdm_integration_cyprus", "cdm_integration_diptera", "cdm_integration_flora_malesiana",
31 "cdm_integration_palmae"};
32
33 private static String[] testDatabases = new String[]{"cdm_bgbm_edit_usergroup","cdm_campanulaceae",
34 "cdm_campanulaceae_082014","cdm_caryo", "cdm_col","cdm_corvidae","cdm_cyprus","cdm_demo1","cdm_demo2",
35 "cdm_demo3", "cdm_edit_algaterra","cdm_edit_cichorieae","cdm_edit_ildis","cdm_edit_flora_central_africa",
36 "cdm_flora_guianas","cdm_flore_gabon","cdm_edit_flora_malesiana","cdm_edit_globis","cdm_edit_palmae",
37 "cdm_ipni_Caryophyllaceae","cdm_mt_moose","cdm_mt_standardliste",
38 "cdm_pesi_euromed", "cdm_pesi_erms","cdm_pesi_fauna_europaea",
39 "cdm_proibiosphere_chenopodium_pilot","cdm_rl_mammalia","cdm_rl_animals","cdm_test_eckhard","cdm_test_euromed","cdm_test_gabi",
40 "cdm_test_norbert","cdm_test_sabine","cdm_vibrant_index"};
41
42
43 private static String[] testDatabasesOthers = new String[]{"cdm_caryo_amaranthaceae",
44 "cdm_caryo_caryophyllales","cdm_flora_malesiana_prospective","cdm_pesi_all","cdm_salvador",
45 };
46
47 private static String[] productionDatabases = new String[]{
48 "cdm_col", "cdm_production_acantholimon","cdm_production_algaterra",
49 "cdm_production_amaranthaceae","cdm_production_cactaceae",
50 "cdm_production_campanulaceae","cdm_production_caryophyllales",
51 "cdm_production_chenopodiaceae","cdm_production_cichorieae",
52 "cdm_production_corvidae","cdm_production_cyprus",
53 "cdm_production_dianthus","cdm_production_diptera",
54 "cdm_production_flora_central_africa","cdm_production_flora_guianas",
55 "cdm_production_flora_malesiana","cdm_production_flora_malesiana_prospective",
56 "cdm_production_flore_gabon",
57 "cdm_production_globis","cdm_production_nyctaginaceae",
58 "cdm_production_palmae","cdm_production_piB_campylopus_pilot",
59 "cdm_production_piB_eupolybothrus_pilot","cdm_production_piB_lactarius_pilot",
60 "cdm_production_piB_loranthaceae","cdm_production_piB_nephrolepis_pilot",
61 "cdm_production_piB_spiders_pilot","cdm_production_polygonaceae",
62 "cdm_production_proibiosphere_ants_pilot","cdm_production_proibiosphere_chenopodium_pilot",
63 "cdm_production_rl_armeria_demo","cdm_production_rl_lumbricidae",
64 "cdm_production_rl_odonata_demo","cdm_production_rl_standardliste",
65 "cdm_production_tamaricaceae","cdm_production_vibrant_index"};
66
67 static BgbmServer bgbmServer = BgbmServer.TEST;
68
69
70
71 static String username = "edit";
72
73
74
75 /**
76 * @param args
77 */
78 public static void main(String[] args) {
79 DbSchemaValidation schema = DbSchemaValidation.VALIDATE;
80 String server = bgbmServer.server;
81 for (String database : bgbmServer.databases){
82 boolean result = true;
83 logger.warn("Update: " + database + " ... ");
84 ICdmDataSource dataSource = CdmDataSource.NewMySqlInstance(server, database, username, AccountStore.readOrStorePassword(server, database, username, null));
85 try {
86 CdmUpdater updater = new CdmUpdater();
87 result = updater.updateToCurrentVersion(dataSource, DefaultProgressMonitor.NewInstance());
88 CdmApplicationController appCtr = CdmIoApplicationController.NewInstance(dataSource,schema);
89 System.out.println(appCtr.getClassificationService().count(Classification.class));
90 } catch (Exception e) {
91 result = false;
92 e.printStackTrace();
93 }
94 if(!result ){
95 logger.warn("Problem");
96 break;
97 }
98
99 logger.warn("Update: " + database + " ... DONE ");
100 }
101
102
103 }
104
105 private enum BgbmServer{
106 INTEGRATION (integrationServer, integrationDatabases),
107 TEST(testServer,testDatabases),
108 PRODUCTION(productionServer,productionDatabases);
109 private String server;
110 private String[] databases;
111 private BgbmServer(String server, String[] databases){
112 this.server = server;
113 this.databases = databases;
114 }
115
116
117
118 }
119 }