1 package fr.ifremer.quadrige3.core.action;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 import fr.ifremer.quadrige3.core.config.QuadrigeConfiguration;
28 import fr.ifremer.quadrige3.core.exception.QuadrigeTechnicalException;
29 import fr.ifremer.quadrige3.core.dao.technical.Daos;
30 import fr.ifremer.quadrige3.core.dao.technical.DatabaseSchemaDao;
31 import fr.ifremer.quadrige3.core.exception.DatabaseSchemaUpdateException;
32 import fr.ifremer.quadrige3.core.dao.technical.hibernate.DatabaseSchemaDaoImpl;
33 import org.apache.commons.logging.Log;
34 import org.apache.commons.logging.LogFactory;
35
36 import java.io.File;
37
38
39
40
41 public class DatabaseNewDbAction {
42
43 private static final Log log = LogFactory.getLog(DatabaseNewDbAction.class);
44
45
46
47
48 public void run() {
49 QuadrigeConfiguration config = QuadrigeConfiguration.getInstance();
50
51
52 File outputDirectory = ActionUtils.checkAndGetOutputFile(true, this.getClass());
53
54 DatabaseSchemaDao databaseSchemaDao = new DatabaseSchemaDaoImpl(config);
55
56 try {
57
58 databaseSchemaDao.generateNewDb(outputDirectory, false);
59
60
61 databaseSchemaDao.updateSchema(outputDirectory);
62 } catch (QuadrigeTechnicalException | DatabaseSchemaUpdateException e1) {
63 log.error(e1.getMessage());
64
65
66 return;
67 }
68
69
70
71 config.setDbDirectory(outputDirectory);
72 config.setJdbcUrl(Daos.getJdbcUrl(outputDirectory, config.getDbName()));
73 }
74 }