diff --git a/work/workmanager/src/androidTest/java/androidx/work/WorkDatabaseMigrationTest.java b/work/workmanager/src/androidTest/java/androidx/work/WorkDatabaseMigrationTest.java
index 1c1893f..ca82c50 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/WorkDatabaseMigrationTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/WorkDatabaseMigrationTest.java
@@ -53,12 +53,12 @@
 
     // Queries
     private static final String INSERT_ALARM_INFO = "INSERT INTO alarmInfo VALUES (?, ?)";
-    private static final String INSERT_SYSTEM_ID_INFO = "INSERT INTO systemIdInfo VALUES (?, ?)";
-    private static final String CHECK_SYSTEM_ID_INFO = "SELECT * FROM systemIdInfo";
+    private static final String INSERT_SYSTEM_ID_INFO = "INSERT INTO SystemIdInfo VALUES (?, ?)";
+    private static final String CHECK_SYSTEM_ID_INFO = "SELECT * FROM SystemIdInfo";
     private static final String CHECK_ALARM_INFO = "SELECT * FROM alarmInfo";
     private static final String CHECK_TABLE_NAME = "SELECT * FROM %s";
     private static final String TABLE_ALARM_INFO = "alarmInfo";
-    private static final String TABLE_SYSTEM_ID_INFO = "systemIdInfo";
+    private static final String TABLE_SYSTEM_ID_INFO = "SystemIdInfo";
     private static final String TABLE_WORKSPEC = "WorkSpec";
     private static final String TABLE_WORKTAG = "WorkTag";
     private static final String TABLE_WORKNAME = "WorkName";
@@ -127,7 +127,7 @@
         String workSpecId1 = UUID.randomUUID().toString();
         String workSpecId2 = UUID.randomUUID().toString();
 
-        // insert systemIdInfo
+        // insert SystemIdInfo
         database.execSQL(INSERT_SYSTEM_ID_INFO, new Object[]{workSpecId1, 1});
         database.execSQL(INSERT_SYSTEM_ID_INFO, new Object[]{workSpecId2, 2});
 
diff --git a/work/workmanager/src/main/java/androidx/work/impl/WorkDatabaseMigrations.java b/work/workmanager/src/main/java/androidx/work/impl/WorkDatabaseMigrations.java
index 0c3e3db..f5e67bf 100644
--- a/work/workmanager/src/main/java/androidx/work/impl/WorkDatabaseMigrations.java
+++ b/work/workmanager/src/main/java/androidx/work/impl/WorkDatabaseMigrations.java
@@ -38,7 +38,7 @@
     private static final int VERSION_2 = 2;
 
     private static final String CREATE_SYSTEM_ID_INFO =
-            "CREATE TABLE IF NOT EXISTS `systemIdInfo` (`work_spec_id` TEXT NOT NULL, `system_id`"
+            "CREATE TABLE IF NOT EXISTS `SystemIdInfo` (`work_spec_id` TEXT NOT NULL, `system_id`"
                     + " INTEGER NOT NULL, PRIMARY KEY(`work_spec_id`), FOREIGN KEY(`work_spec_id`)"
                     + " REFERENCES `WorkSpec`(`id`) ON UPDATE CASCADE ON DELETE CASCADE )";
 
@@ -49,20 +49,20 @@
                     + "CASCADE )";
 
     private static final String MIGRATE_ALARM_INFO_TO_SYSTEM_ID_INFO =
-            "INSERT INTO systemIdInfo(work_spec_id, system_id) "
+            "INSERT INTO SystemIdInfo(work_spec_id, system_id) "
                     + "SELECT work_spec_id, alarm_id AS system_id FROM alarmInfo";
 
     private static final String MIGRATE_SYSTEM_ID_INFO_TO_ALARM_INFO =
             "INSERT INTO alarmInfo(work_spec_id, alarm_id) "
-                    + "SELECT work_spec_id, system_id AS alarm_id FROM systemIdInfo";
+                    + "SELECT work_spec_id, system_id AS alarm_id FROM SystemIdInfo";
 
     private static final String REMOVE_ALARM_INFO = "DROP TABLE IF EXISTS alarmInfo";
-    private static final String REMOVE_SYSTEM_ID_INFO = "DROP TABLE IF EXISTS systemIdInfo";
+    private static final String REMOVE_SYSTEM_ID_INFO = "DROP TABLE IF EXISTS SystemIdInfo";
 
 
     /**
      * Removes the {@code alarmInfo} table and substitutes it for a more general
-     * {@code systemIdInfo} table.
+     * {@code SystemIdInfo} table.
      */
     public static Migration MIGRATION_1_2 = new Migration(VERSION_1, VERSION_2) {
         @Override
@@ -75,7 +75,7 @@
 
     /**
      * Removes the {@code alarmInfo} table and substitutes it for a more general
-     * {@code systemIdInfo} table.
+     * {@code SystemIdInfo} table.
      */
     public static Migration MIGRATION_2_1 = new Migration(VERSION_2, VERSION_1) {
         @Override
diff --git a/work/workmanager/src/main/java/androidx/work/impl/model/SystemIdInfo.java b/work/workmanager/src/main/java/androidx/work/impl/model/SystemIdInfo.java
index e869762..cd97958 100644
--- a/work/workmanager/src/main/java/androidx/work/impl/model/SystemIdInfo.java
+++ b/work/workmanager/src/main/java/androidx/work/impl/model/SystemIdInfo.java
@@ -28,8 +28,7 @@
  *
  * @hide
  */
-@Entity(tableName = "systemIdInfo",
-        foreignKeys = {
+@Entity(foreignKeys = {
                 @ForeignKey(
                         entity = WorkSpec.class,
                         parentColumns = "id",
diff --git a/work/workmanager/src/main/java/androidx/work/impl/model/SystemIdInfoDao.java b/work/workmanager/src/main/java/androidx/work/impl/model/SystemIdInfoDao.java
index bcee05b..383e516 100644
--- a/work/workmanager/src/main/java/androidx/work/impl/model/SystemIdInfoDao.java
+++ b/work/workmanager/src/main/java/androidx/work/impl/model/SystemIdInfoDao.java
@@ -42,7 +42,7 @@
      * @return The instance of {@link SystemIdInfo} if exists.
      */
     @Nullable
-    @Query("SELECT * FROM systemIdInfo WHERE work_spec_id=:workSpecId")
+    @Query("SELECT * FROM SystemIdInfo WHERE work_spec_id=:workSpecId")
     SystemIdInfo getSystemIdInfo(@NonNull String workSpecId);
 
     /**
@@ -50,6 +50,6 @@
      *
      * @param workSpecId The {@link WorkSpec} identifier.
      */
-    @Query("DELETE FROM systemIdInfo where work_spec_id=:workSpecId")
+    @Query("DELETE FROM SystemIdInfo where work_spec_id=:workSpecId")
     void removeSystemIdInfo(@NonNull String workSpecId);
 }
diff --git a/work/workmanager/src/schemas/androidx.work.impl.WorkDatabase/2.json b/work/workmanager/src/schemas/androidx.work.impl.WorkDatabase/2.json
index 00bc68d..400e545 100644
--- a/work/workmanager/src/schemas/androidx.work.impl.WorkDatabase/2.json
+++ b/work/workmanager/src/schemas/androidx.work.impl.WorkDatabase/2.json
@@ -2,7 +2,7 @@
   "formatVersion": 1,
   "database": {
     "version": 2,
-    "identityHash": "244d2ac5ecd0a7fb47b3755737585d7b",
+    "identityHash": "c45e5fcbdf3824dead9778f19e2fd8af",
     "entities": [
       {
         "tableName": "Dependency",
@@ -269,7 +269,7 @@
         ]
       },
       {
-        "tableName": "systemIdInfo",
+        "tableName": "SystemIdInfo",
         "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`work_spec_id` TEXT NOT NULL, `system_id` INTEGER NOT NULL, PRIMARY KEY(`work_spec_id`), FOREIGN KEY(`work_spec_id`) REFERENCES `WorkSpec`(`id`) ON UPDATE CASCADE ON DELETE CASCADE )",
         "fields": [
           {
@@ -357,7 +357,7 @@
     ],
     "setupQueries": [
       "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
-      "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, \"244d2ac5ecd0a7fb47b3755737585d7b\")"
+      "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, \"c45e5fcbdf3824dead9778f19e2fd8af\")"
     ]
   }
 }
\ No newline at end of file
