diff --git a/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/SpannerLifeCycleManager.java b/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/DatabaseSchemaCreator.java
similarity index 95%
rename from src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/SpannerLifeCycleManager.java
rename to src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/DatabaseSchemaCreator.java
index f841ff7..7bed262 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/SpannerLifeCycleManager.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/DatabaseSchemaCreator.java
@@ -28,14 +28,14 @@
 import java.util.Arrays;
 
 @Singleton
-class SpannerLifeCycleManager implements LifecycleListener {
+class DatabaseSchemaCreator implements LifecycleListener {
   private static final FluentLogger logger = FluentLogger.forEnclosingClass();
 
   private DatabaseAdminClient dbAdminClient;
   private DatabaseId dbId;
 
   @Inject
-  SpannerLifeCycleManager(DatabaseAdminClient dbAdminClient, DatabaseId dbId) {
+  DatabaseSchemaCreator(DatabaseAdminClient dbAdminClient, DatabaseId dbId) {
     this.dbAdminClient = dbAdminClient;
     this.dbId = dbId;
   }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/Module.java b/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/Module.java
index 9590546..88fff7c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/Module.java
@@ -52,7 +52,7 @@
     DynamicItem.bind(binder(), GlobalRefDatabase.class)
         .to(SpannerRefDatabase.class)
         .in(Scopes.SINGLETON);
-    listener().to(SpannerLifeCycleManager.class);
+    listener().to(DatabaseSchemaCreator.class);
     install(new FactoryModuleBuilder().build(Lock.Factory.class));
     bind(ScheduledExecutorService.class)
         .annotatedWith(HeartbeatExecutor.class)
diff --git a/src/test/java/com/googlesource/gerrit/plugins/spannerrefdb/EmulatedSpannerRefDb.java b/src/test/java/com/googlesource/gerrit/plugins/spannerrefdb/EmulatedSpannerRefDb.java
index aa2dd6b..20d6973 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/spannerrefdb/EmulatedSpannerRefDb.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/spannerrefdb/EmulatedSpannerRefDb.java
@@ -114,9 +114,9 @@
   }
 
   private void createSchema() {
-    SpannerLifeCycleManager lcm =
-        new SpannerLifeCycleManager(spannerOptions.getService().getDatabaseAdminClient(), dbId);
-    lcm.start();
+    DatabaseSchemaCreator dsc =
+        new DatabaseSchemaCreator(spannerOptions.getService().getDatabaseAdminClient(), dbId);
+    dsc.start();
   }
 
   public SpannerEmulatorContainer getContainer() {
diff --git a/src/test/java/com/googlesource/gerrit/plugins/spannerrefdb/RealSpannerRefDb.java b/src/test/java/com/googlesource/gerrit/plugins/spannerrefdb/RealSpannerRefDb.java
index 6635ac6..48f57dd 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/spannerrefdb/RealSpannerRefDb.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/spannerrefdb/RealSpannerRefDb.java
@@ -96,8 +96,8 @@
             .createDatabase(dbId.getInstanceId().getInstance(), dbId.getDatabase(), List.of())
             .get();
 
-    SpannerLifeCycleManager lifecycleManager = new SpannerLifeCycleManager(dbAdminClient, dbId);
-    lifecycleManager.start();
+    DatabaseSchemaCreator databaseSchemaCreator = new DatabaseSchemaCreator(dbAdminClient, dbId);
+    databaseSchemaCreator.start();
     dbClient = options.getService().getDatabaseClient(dbId);
     ScheduledExecutorService heartbeatExecutor = Executors.newScheduledThreadPool(2);
     Lock.Factory lockFactory =
