Expand Contract
Pattern
Continuous Delivery for Databases
@leenasn
A few years back
https://pixabay.com/en/change-new-beginning-renewal-673006/
https://martinfowler.com/bliki/BranchByAbstraction.html
Branch by Abstraction
Database?
Slow
High risk https://pixabay.com/en/balance-risk-courage-risky-3062272/
Less risky?
Database Refactoring
https://martinfowler.com/books/refactoring.html
Refactoring is a controlled technique for improving
the design of an existing code base. Its essence is
applying a series of small behavior-preserving
transformations, each of which "too small to be worth
doing".
However the cumulative effect of each of these
transformations is quite significant.
Split Column
customer
booking_date
status
trial_bookings
Migration
New Schema
Refactoring Process
Split table
Migration Time
New Schema
Refactoring Process
https://martinfowler.com/articles/evodb.html
Expand Contract
Expand
Contract
Basics
Versioning
Golden gate bridge safety first
Tests
https://pixabay.com/en/strategy-arrows-building-startup-3224515/
Principles of low risk releases
Incremental
Done
Decouple deploy from release
Small Batches
References
https://medium.com/continuousdelivery/split-table-a-database-refactoring-techni
que-5dec00449e51
https://medium.com/@leenasn/continuous-delivery-for-database-eabd7f280019
https://medium.com/@leenasn/expand-contract-pattern-and-continuous-delivery
-of-databases-4cfa00c23d2e
http://databaserefactoring.com/
http://www.informit.com/articles/article.aspx?p=1833567
Leena S N
@leenasn / leena.sn@multunus.com
https://medium.com/@leenasn

Expand contract pattern - Continuous Delivery and Databases