![featured image](https://images.unsplash.com/photo-1486304873000-235643847519?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDl8fHJvb218ZW58MHx8fHwxNjE4NDE2Njky&ixlib=rb-1.2.1&q=80&w=2000) I want to take the time to talk about Room migrations. I\'ve kinda used Room but in the quest to get better at tooling I thought an app with Room would be the perfect \"entry\" test. When I was first building I had `.fallbackMigration` which deletes your entire table on update. I was confused because that\'s what I\'ve always used. Not to self, what you default to is not always right. Anyway insert migrations. I had never written a migration before and I thought [Google docs](https://developer.android.com/training/data-storage/room/migrating-db-versions) would get me through. That was also a bad assumption. Getting the first REAL green check took \~8hrs. What was wrong? Glad you asked. I was able to somehow google to get a base test going. By base I mean no assertions. It was showing green which is cool. What I discovered is that because we close the db after the test I couldn\'t prove a thing. How did I know what I inserted matched the new schema? Well I don\'t know how but I found [this really good write up](https://dev.to/keyopstech/unit-test-a-room-migration-on-android-1ma7) to pair my migration test with assertions. I would like to stop here and say if you are seeing some weird errors it\'s not the dao line (my original thought), but you need to restart Android Studios a few times using `invalidate and restart`. After a few more hours of frustration and restarts I finally say a wonderful red assertion fail. It was mostly a fail because I switched the actual and expected values. 😅 So suggestions so you don\'t get stuck:\ 1. Read the google docs. I think understanding the overall structure really helps. 2\. Read [the article](https://dev.to/keyopstech/unit-test-a-room-migration-on-android-1ma7) by Jeremy. I think this is a great breakdown by them especially if your new to testing. 3\. High Level test sqlite statements [here](https://sqliteonline.com/). I was originally trying to make sql statements work (some commands look the same) before I realized that mental assumption was breaking things. 4\. Use the database inspector and alter 1 line in your db so that you get the proper sql statements for migration. You have to have the app running to do this but its super helpful. I was able to see the steps to one line and then I just copy and pasted where needed. ------------------------------------------------------------------------ I\'m planning to write more about my testing journey as this is most interesting to me. If there is anything I should check out let me know.