~/talk

Database migrations without downtime

slides:none on file

Claims that rollbacks are usually impossible for real systems and that safe migrations require multi-step, non‑destructive moves: add columns, dual writes (write old and new), backfill remaining rows, then switch reads and drop old fields. Recommends expand-contract for backward compatibility, use Flyway / doctrine / Liquibase for versioning, and for huge datasets use resumable background jobs, queues or CQRS to rebuild read stores instead of locking production with long ALTERs.

AI-written summary · about

  1. 0:00Start
  2. 1:21ABOUT DATABASE MIGRATIONS
  3. 1:51ABOUT SCHEMA MIGRATIONS
  4. 5:03TRANSACTIONS?
  5. 5:20ROLLBACKS?
  6. 9:14DOWNTIME?
  7. 10:23NO MIGRATIONS!
  8. 11:11DATABASE STATE?
  9. 11:52OLD APP SHOULD WORK WITH NEW STATE
  10. 12:15DECOUPLE
  11. 12:31EXPAND - CONTRACT
  12. 12:52BACKWARDS COMPATIBILITY
  13. 13:33DEPRECATION
  14. 14:17NON-DESTRUCTIVE CHANGES
  15. 14:47ONE DIFF BACK
  16. 15:03EXAMPLE: RENAMING A COLUMN
  17. 16:25FEATURE TOGGLES
  18. 17:20NOSQL
  19. 17:46NO SCHEMA
  20. 18:10MIGRATE DURING READ
  21. 18:27BACKGROUND MIGRATION
  22. 18:37NO DOWNTIME
  23. 18:58LARGE DATASETS
  24. 21:05QUEUES
  25. 22:37COMMAND QUERY RESPONSIBILITY SEGREGATION
  26. 23:34SEPARATE READS FROM WRITES
  27. 25:11TOOLS
  28. 25:37RECAP
  29. 25:49NO BREAKING CHANGES
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.