Migrating a live Spring Boot application to a new database schema without downtime requires a phased, dual-write approach where both schemas coexist temporarily while data and traffic are gradually shifted over.
Key Points: • Introduce the new schema alongside the existing one instead of replacing it outright. • Update the application to dual-write, sending changes to both the old and new schema simultaneously. • Backfill historical data from the old schema into the new one with a migration job, verifying consistency. • Once verified, switch read operations over to the new schema while dual-writes continue as a safety net. • Decommission the old schema only after a monitoring period confirms the new schema is fully correct and stable.
Example: An e-commerce team migrating order storage to a new schema runs dual-writes for two weeks, compares row counts and checksums daily, then cuts reads over to the new schema before finally dropping the old tables.
Interview Tip: A concise interview answer is:
"For a zero-downtime schema migration, I run the old and new schemas in parallel, dual-writing to both while backfilling historical data into the new one. Once I've verified consistency, I switch reads to the new schema, keep dual-writes as a safety net for a while, then decommission the old schema."