Practical room migrations
summary
Room’s migration flow is practical and concrete: Auto Migrations generate implementations if schemas are exported, and ambiguous renames use a Migration Spec with annotations like RenameTable/RenameColumn/DeleteColumn/DeleteTable and a PostMigrate hook for data conversion. Manual migrations run before an auto migration to sanitize rows (example: remove invalid child foreign-key refs) so adding constraints succeeds. Tests use the Migration Test Helper and runMigrationsAndValidate to create old-version DBs, migrate, validate schema, and assert migrated data.
AI-written summary · about
chapters (9)
- 0:00Intro
- 0:22Not every database needs to be migrated
- 1:07Auto migrations
- 2:22Postmigrate
- 3:00Manual migration
- 3:27Manual migration example
- 3:54Column info migration
- 4:18Migration box
- 4:48Testing migrations
related talks
37mDatabase Schema Migrations with Zero Downtime
43mHow to avoid database migration hell
35mDatabase migrations without downtime
45mrails db:migrate:even_safer
36mUp And Down Again: A Migration's Tale
20mData Persistence In Android: There’s Room For Improvement
31mRoom: An SQLite Object Mapping Library
33mDatabase Schema Migrations with Zero Downtime
