Fix table deletion during database init
If notedb read is enabled, then we need to unwrap the database here.
Bug: Issue 4208
Change-Id: I639c6fc48ab1cfafa69b3d691a24dc95c501ffb3
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/BaseInit.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/BaseInit.java
index 540ba0b..f490599 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/BaseInit.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/BaseInit.java
@@ -34,6 +34,7 @@
import com.google.gerrit.server.config.SitePaths;
import com.google.gerrit.server.git.GitRepositoryManager;
import com.google.gerrit.server.plugins.JarScanner;
+import com.google.gerrit.server.schema.DisabledChangesReviewDbWrapper;
import com.google.gerrit.server.schema.SchemaUpdater;
import com.google.gerrit.server.schema.UpdateUI;
import com.google.gerrit.server.securestore.SecureStore;
@@ -399,7 +400,7 @@
System.err.flush();
} else if (ui.yesno(true, "%s\nExecute now", msg)) {
- try (JdbcSchema db = (JdbcSchema) schema.open();
+ try (JdbcSchema db = (JdbcSchema) unwrapDb(schema.open());
JdbcExecutor e = new JdbcExecutor(db)) {
for (String sql : pruneList) {
e.execute(sql);
@@ -470,4 +471,11 @@
protected boolean isDev() {
return false;
}
+
+ private static ReviewDb unwrapDb(ReviewDb db) {
+ if (db instanceof DisabledChangesReviewDbWrapper) {
+ return((DisabledChangesReviewDbWrapper) db).unsafeGetDelegate();
+ }
+ return db;
+ }
}