1 package net.sumaris.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
28 import net.sumaris.core.config.SumarisConfiguration;
29 import net.sumaris.core.dao.schema.DatabaseSchemaDao;
30 import net.sumaris.core.dao.schema.DatabaseSchemaDaoImpl;
31 import net.sumaris.core.dao.technical.Daos;
32 import net.sumaris.core.exception.DatabaseSchemaUpdateException;
33 import net.sumaris.core.exception.SumarisTechnicalException;
34 import org.slf4j.Logger;
35 import org.slf4j.LoggerFactory;
36
37 import java.io.File;
38
39
40
41
42 public class DatabaseCreateSchemaAction {
43
44 private static final Logger log = LoggerFactory.getLogger(DatabaseCreateSchemaAction.class);
45
46
47
48
49 public void run() {
50 SumarisConfiguration config = SumarisConfiguration.getInstance();
51
52
53 File outputDirectory = ActionUtils.checkAndGetOutputFile(true, this.getClass());
54
55 DatabaseSchemaDao databaseSchemaDao = new DatabaseSchemaDaoImpl(config);
56
57 try {
58
59 databaseSchemaDao.generateNewDb(outputDirectory, false);
60
61
62 databaseSchemaDao.updateSchema(outputDirectory);
63 } catch (SumarisTechnicalException | DatabaseSchemaUpdateException e1) {
64 log.error(e1.getMessage());
65
66
67 return;
68 }
69
70
71
72 config.setDbDirectory(outputDirectory);
73 config.setJdbcUrl(Daos.getJdbcUrl(outputDirectory, config.getDbName()));
74 }
75 }