Continuous Delivery Office Hours Ep.5: Delivering database changes
Blog post from Octopus Deploy
In the discussion led by Steve Fenton, the complexities and challenges of database changes compared to application code deployments are explored, emphasizing the high stakes and potential pitfalls of schema alterations. Unlike application code, database rollbacks are more intricate due to data dependencies and the risk of data loss, which cannot be entirely mitigated by backups. The text highlights the importance of version control for database schemas and the choice between state-based and migration-based update approaches, each with its procedural nuances. The role of tooling and automation in managing database changes is underscored, with a recommendation to avoid manual changes to ensure consistency and reliability. Further, it stresses the significance of automated test data management to prevent data inconsistencies during testing and proposes the expand/contract pattern for database refactoring to decouple application and database deployments, facilitating smoother transitions and rollback capabilities. Overall, the narrative encourages adopting best practices and robust tooling to transform database deployments into a stress-free and celebratory part of software delivery.