diff --git a/java/com/google/gerrit/pgm/Init.java b/java/com/google/gerrit/pgm/Init.java index 0baa15c59f..4e62a0f88b 100644 --- a/java/com/google/gerrit/pgm/Init.java +++ b/java/com/google/gerrit/pgm/Init.java @@ -32,6 +32,9 @@ import com.google.gerrit.pgm.util.ErrorLogFile; import com.google.gerrit.server.config.GerritServerConfigModule; import com.google.gerrit.server.config.SitePath; import com.google.gerrit.server.index.GerritIndexStatus; +import com.google.gerrit.server.index.account.AccountSchemaDefinitions; +import com.google.gerrit.server.index.change.ChangeSchemaDefinitions; +import com.google.gerrit.server.index.group.GroupSchemaDefinitions; import com.google.gerrit.server.ioutil.HostPlatform; import com.google.gerrit.server.securestore.SecureStoreClassName; import com.google.gerrit.server.util.ReplicaUtil; @@ -90,7 +93,7 @@ public class Init extends BaseInit { @Inject Browser browser; - private boolean projectsIndexExists; + private GerritIndexStatus indexStatus; public Init() { super(new WarDistribution(), null); @@ -104,7 +107,7 @@ public class Init extends BaseInit { @Override protected boolean beforeInit(SiteInit init) throws Exception { - projectsIndexExists = new GerritIndexStatus(init.site).exists(ProjectSchemaDefinitions.NAME); + indexStatus = new GerritIndexStatus(init.site); ErrorLogFile.errorOnlyConsole(); if (!skipPlugins) { @@ -133,6 +136,12 @@ public class Init extends BaseInit { @Override protected void afterInit(SiteRun run) throws Exception { + List> schemaDefs = + ImmutableList.of( + AccountSchemaDefinitions.INSTANCE, + ChangeSchemaDefinitions.INSTANCE, + GroupSchemaDefinitions.INSTANCE, + ProjectSchemaDefinitions.INSTANCE); List modules = new ArrayList<>(); modules.add( new AbstractModule() { @@ -147,8 +156,12 @@ public class Init extends BaseInit { }); modules.add(new GerritServerConfigModule()); Guice.createInjector(modules).injectMembers(this); - if (!ReplicaUtil.isReplica(run.flags.cfg) && !projectsIndexExists) { - reindex(ProjectSchemaDefinitions.INSTANCE); + if (!ReplicaUtil.isReplica(run.flags.cfg)) { + for (SchemaDefinitions schemaDef : schemaDefs) { + if (!indexStatus.exists(schemaDef.getName())) { + reindex(schemaDef); + } + } } start(run); } diff --git a/javatests/com/google/gerrit/acceptance/pgm/ElasticReindexIT.java b/javatests/com/google/gerrit/acceptance/pgm/ElasticReindexIT.java index 38b7e0e35b..cf349ab6a1 100644 --- a/javatests/com/google/gerrit/acceptance/pgm/ElasticReindexIT.java +++ b/javatests/com/google/gerrit/acceptance/pgm/ElasticReindexIT.java @@ -21,7 +21,6 @@ import com.google.gerrit.elasticsearch.ElasticVersion; import com.google.gerrit.testing.ConfigSuite; import com.google.inject.Injector; import org.eclipse.jgit.lib.Config; -import org.junit.Before; public class ElasticReindexIT extends AbstractReindexTests { @@ -39,10 +38,4 @@ public class ElasticReindexIT extends AbstractReindexTests { public void configureIndex(Injector injector) { createAllIndexes(injector); } - - @Before - public void reindexFirstSinceElastic() throws Exception { - assertServerStartupFails(); - runGerrit("reindex", "-d", sitePaths.site_path.toString(), "--show-stack-trace"); - } }