diff --git a/app/build.gradle b/app/build.gradle
index 635fb125b..0e28d8fb5 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -101,6 +101,10 @@ android {
     lint {
         abortOnError false
     }
+    sourceSets {
+        // Adds exported schema location as test app assets.
+        androidTest.assets.srcDirs += files("$projectDir/schemas".toString())
+    }
 }
 
 // per protobuf-gradle-plugin docs, this is recommended for android
@@ -171,7 +175,7 @@ dependencies {
     // optional - Kotlin Extensions and Coroutines support for Room
     implementation "androidx.room:room-ktx:$room_version"
     // optional - Test helpers
-    testImplementation "androidx.room:room-testing:$room_version"
+    androidTestImplementation "androidx.room:room-testing:$room_version"
 
     // Hilt
     implementation "com.google.dagger:hilt-android:$hilt_version"
diff --git a/app/src/androidTest/java/com/geeksville/mesh/MeshtasticDatabaseTest.kt b/app/src/androidTest/java/com/geeksville/mesh/MeshtasticDatabaseTest.kt
new file mode 100644
index 000000000..8990554f0
--- /dev/null
+++ b/app/src/androidTest/java/com/geeksville/mesh/MeshtasticDatabaseTest.kt
@@ -0,0 +1,44 @@
+package com.geeksville.mesh
+
+import androidx.room.Room
+import androidx.room.testing.MigrationTestHelper
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.platform.app.InstrumentationRegistry
+import com.geeksville.mesh.database.MeshtasticDatabase
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import java.io.IOException
+
+@RunWith(AndroidJUnit4::class)
+class MeshtasticDatabaseTest {
+
+    companion object {
+        private const val TEST_DB = "migration-test"
+    }
+
+    @get:Rule
+    val helper: MigrationTestHelper = MigrationTestHelper(
+        InstrumentationRegistry.getInstrumentation(),
+        MeshtasticDatabase::class.java,
+    )
+
+    @Test
+    @Throws(IOException::class)
+    fun migrateAll() {
+        // Create earliest version of the database.
+        helper.createDatabase(TEST_DB, 3).apply {
+            close()
+        }
+
+        // Open latest version of the database. Room validates the schema
+        // once all migrations execute.
+        Room.databaseBuilder(
+            InstrumentationRegistry.getInstrumentation().targetContext,
+            MeshtasticDatabase::class.java,
+            TEST_DB
+        ).build().apply {
+            openHelper.writableDatabase.close()
+        }
+    }
+}