Skip to content

Commit d2910e3

Browse files
Vadim Veramkurz
authored andcommitted
Introduce configuration parameter to control the generation of the evolution SQL files
1 parent 9aae549 commit d2910e3

6 files changed

Lines changed: 37 additions & 6 deletions

File tree

play-ebean/src/main/java/play/db/ebean/DefaultEbeanConfig.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,24 @@
2424
/** Ebean server configuration. */
2525
@Singleton
2626
public class DefaultEbeanConfig implements EbeanConfig {
27+
private final Boolean ddlGenerate;
2728

2829
private final String defaultServer;
30+
2931
private final Map<String, DatabaseConfig> serverConfigs;
3032

31-
public DefaultEbeanConfig(String defaultServer, Map<String, DatabaseConfig> serverConfigs) {
33+
public DefaultEbeanConfig(
34+
Boolean ddlGenerate, String defaultServer, Map<String, DatabaseConfig> serverConfigs) {
35+
this.ddlGenerate = ddlGenerate;
3236
this.defaultServer = defaultServer;
3337
this.serverConfigs = serverConfigs;
3438
}
3539

40+
@Override
41+
public Boolean ddlGenerate() {
42+
return ddlGenerate;
43+
}
44+
3645
@Override
3746
public String defaultServer() {
3847
return defaultServer;
@@ -70,7 +79,6 @@ public EbeanConfig get() {
7079
* @return a config for Ebean servers.
7180
*/
7281
public EbeanConfig parse() {
73-
7482
EbeanParsedConfig ebeanConfig = EbeanParsedConfig.parseFromConfig(config);
7583

7684
Map<String, DatabaseConfig> serverConfigs = new HashMap<>();
@@ -100,7 +108,8 @@ public EbeanConfig parse() {
100108
serverConfigs.put(key, serverConfig);
101109
}
102110

103-
return new DefaultEbeanConfig(ebeanConfig.getDefaultDatasource(), serverConfigs);
111+
return new DefaultEbeanConfig(
112+
ebeanConfig.getDdlGenerate(), ebeanConfig.getDefaultDatasource(), serverConfigs);
104113
}
105114

106115
private void setServerConfigDataSource(String key, DatabaseConfig serverConfig) {

play-ebean/src/main/java/play/db/ebean/EbeanConfig.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import java.util.Map;
99

1010
public interface EbeanConfig {
11+
Boolean ddlGenerate();
1112

1213
String defaultServer();
1314

play-ebean/src/main/java/play/db/ebean/EbeanDynamicEvolutions.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,9 @@ public void create() {
6464
if (environment.isProd()) {
6565
return;
6666
}
67+
if (config.ddlGenerate().equals(Boolean.FALSE)) {
68+
return;
69+
}
6770
config
6871
.serverConfigs()
6972
.forEach(

play-ebean/src/main/java/play/db/ebean/EbeanParsedConfig.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,21 @@
1717
*/
1818
public class EbeanParsedConfig {
1919

20+
private final Boolean ddlGenerate;
2021
private final String defaultDatasource;
2122
private final Map<String, List<String>> datasourceModels;
2223

23-
public EbeanParsedConfig(String defaultDatasource, Map<String, List<String>> datasourceModels) {
24+
public EbeanParsedConfig(
25+
Boolean ddlGenerate, String defaultDatasource, Map<String, List<String>> datasourceModels) {
26+
this.ddlGenerate = ddlGenerate;
2427
this.defaultDatasource = defaultDatasource;
2528
this.datasourceModels = datasourceModels;
2629
}
2730

31+
public Boolean getDdlGenerate() {
32+
return ddlGenerate;
33+
}
34+
2835
public String getDefaultDatasource() {
2936
return defaultDatasource;
3037
}
@@ -42,8 +49,9 @@ public Map<String, List<String>> getDatasourceModels() {
4249
*/
4350
public static EbeanParsedConfig parseFromConfig(Config config) {
4451
Config playEbeanConfig = config.getConfig("play.ebean");
45-
String defaultDatasource = playEbeanConfig.getString("defaultDatasource");
4652
String ebeanConfigKey = playEbeanConfig.getString("config");
53+
Boolean ebeanDdlGenerateKey = playEbeanConfig.getBoolean("ddlGenerate");
54+
String ebeanDefaultDatasourceKey = playEbeanConfig.getString("defaultDatasource");
4755

4856
Map<String, List<String>> datasourceModels = new HashMap<>();
4957

@@ -64,6 +72,6 @@ public static EbeanParsedConfig parseFromConfig(Config config) {
6472
datasourceModels.put(key, models);
6573
});
6674
}
67-
return new EbeanParsedConfig(defaultDatasource, datasourceModels);
75+
return new EbeanParsedConfig(ebeanDdlGenerateKey, ebeanDefaultDatasourceKey, datasourceModels);
6876
}
6977
}

play-ebean/src/main/resources/reference.conf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ play {
77
# The key for ebean config
88
config = "ebean"
99

10+
# The key to control the generation of the evolution SQL files
11+
ddlGenerate = true
12+
1013
# The name of the default ebean datasource
1114
defaultDatasource = "default"
1215
}

play-ebean/src/test/java/play/db/ebean/EbeanParsedConfigTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ private EbeanParsedConfig parse(Map<String, ?> config) {
2424
@Test
2525
public void defaultConfig() {
2626
EbeanParsedConfig config = parse(Collections.emptyMap());
27+
assertThat(config.getDdlGenerate(), equalTo(Boolean.TRUE));
2728
assertThat(config.getDefaultDatasource(), equalTo("default"));
2829
assertThat(config.getDatasourceModels().size(), equalTo(0));
2930
}
@@ -52,6 +53,12 @@ public void customDefault() {
5253
assertThat(config.getDefaultDatasource(), equalTo("custom"));
5354
}
5455

56+
@Test
57+
public void disableDdlGenerate() {
58+
EbeanParsedConfig config = parse(ImmutableMap.of("play.ebean.ddlGenerate", false));
59+
assertThat(config.getDdlGenerate(), equalTo(Boolean.FALSE));
60+
}
61+
5562
@Test
5663
public void customConfig() {
5764
EbeanParsedConfig config =

0 commit comments

Comments
 (0)