Skip to content

Commit 55b2a70

Browse files
authored
Merge pull request #17 from dbos-inc/manoj/migration
Manoj/migration
2 parents 2e6f80a + 15466ec commit 55b2a70

11 files changed

Lines changed: 301 additions & 130 deletions

File tree

build.gradle.kts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,7 @@ tasks.withType<JavaCompile> {
1919
// (Alternative: sourceCompatibility = "11"; targetCompatibility = "11")
2020
}
2121

22-
// tasks.withType<JavaCompile> {
23-
// sourceCompatibility = "11"
24-
// targetCompatibility = "11"
25-
// }
22+
2623

2724
repositories {
2825
mavenCentral()
@@ -31,8 +28,8 @@ repositories {
3128
dependencies {
3229
api("org.slf4j:slf4j-api:2.0.13") // logging api
3330

34-
implementation("org.flywaydb:flyway-core:10.11.0") // migration
35-
implementation("org.flywaydb:flyway-database-postgresql:10.11.0")
31+
// implementation("org.flywaydb:flyway-core:10.11.0") // migration
32+
// implementation("org.flywaydb:flyway-database-postgresql:10.11.0")
3633
implementation("org.postgresql:postgresql:42.7.2")
3734
implementation("com.zaxxer:HikariCP:5.0.1") // Connection pool
3835
implementation("com.fasterxml.jackson.core:jackson-databind:2.17.0") // json

src/main/java/dev/dbos/transact/DBOS.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import dev.dbos.transact.interceptor.QueueInvocationHandler;
99
import dev.dbos.transact.interceptor.TransactInvocationHandler;
1010
import dev.dbos.transact.interceptor.UnifiedInvocationHandler;
11-
import dev.dbos.transact.migrations.DatabaseMigrator;
11+
import dev.dbos.transact.migrations.MigrationManager;
1212
import dev.dbos.transact.notifications.NotificationService;
1313
import dev.dbos.transact.queue.Queue;
1414
import dev.dbos.transact.queue.QueueService;
@@ -186,12 +186,14 @@ public Queue build() {
186186
return q;
187187
}
188188
}
189-
190189
public void launch() {
191-
DatabaseMigrator.runMigrations(config);
190+
191+
if (config.migration()) {
192+
MigrationManager.runMigrations(config);
193+
}
194+
192195
if (dbosExecutor == null) {
193196
SystemDatabase.initialize(config);
194-
// systemDatabase = SystemDatabase.getInstance();
195197
dbosExecutor = new DBOSExecutor(config, SystemDatabase.getInstance());
196198
}
197199

src/main/java/dev/dbos/transact/config/DBOSConfig.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public class DBOSConfig {
2323
private final boolean http ;
2424
private final int httpPort ;
2525
private final boolean httpAwaitOnStart ;
26+
private final boolean migrate ;
2627

2728

2829
private DBOSConfig(Builder builder) {
@@ -39,6 +40,7 @@ private DBOSConfig(Builder builder) {
3940
this.http = builder.http ;
4041
this.httpPort = builder.httpPort ;
4142
this.httpAwaitOnStart = builder.httpAwaitOnStart;
43+
this.migrate = builder.migrate;
4244

4345
}
4446

@@ -56,6 +58,7 @@ public static class Builder {
5658
private boolean http = false ;
5759
private int httpPort ;
5860
private boolean httpAwaitOnStart = true ;
61+
private boolean migrate = true ;
5962

6063
public Builder name(String name) {
6164
this.name = name;
@@ -122,6 +125,11 @@ public Builder adminAwaitOnStart(boolean wait) {
122125
return this;
123126
}
124127

128+
public Builder migration(boolean migrate) {
129+
this.migrate = migrate;
130+
return this ;
131+
}
132+
125133
public DBOSConfig build() {
126134
if (name == null) throw new IllegalArgumentException("Name is required");
127135
if (dbPassword == null) {
@@ -184,6 +192,10 @@ public boolean isHttpAwaitOnStart() {
184192
return httpAwaitOnStart;
185193
}
186194

195+
public boolean migration() {
196+
return migrate ;
197+
}
198+
187199
@Override
188200
public String toString() {
189201
return "DBOSConfig{" +
@@ -202,6 +214,8 @@ public DataSource createDataSource(String dbName) {
202214

203215
String dburl = String.format("jdbc:postgresql://%s:%d/%s",dbHost,dbPort,dbName);
204216

217+
System.out.println(dburl) ;
218+
205219
hikariConfig.setJdbcUrl(dburl);
206220
hikariConfig.setUsername(dbUser);
207221
hikariConfig.setPassword(dbPassword);

src/main/java/dev/dbos/transact/execution/DBOSExecutor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public void setQueueService(QueueService queueService) {
5252

5353
public void shutdown() {
5454
workflowRegistry = null ;
55-
executorService.shutdown();
55+
executorService.shutdownNow();
5656
systemDatabase.destroy() ;
5757
}
5858

src/main/java/dev/dbos/transact/migrations/DatabaseMigrator.java

Lines changed: 0 additions & 107 deletions
This file was deleted.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package dev.dbos.transact.migrations;
2+
3+
public class MigrationFile {
4+
private final String filename;
5+
private final String sql;
6+
7+
public MigrationFile(String filename, String sql) {
8+
this.filename = filename;
9+
this.sql = sql;
10+
}
11+
12+
public String getFilename() {
13+
return filename;
14+
}
15+
16+
public String getSql() {
17+
return sql;
18+
}
19+
}

0 commit comments

Comments
 (0)