Ask HN: How do you deploy code with breaking database changes?
2 コメント
Normally all breaking changes can be broken up into 2.
First add the additions to the db, then the new version of the software can work with the db.
Then once all software is updated, remove the old fields.
First add the additions to the db, then the new version of the software can work with the db.
Then once all software is updated, remove the old fields.
Generally if you take the always append columns never drop or rename existing ones you’ll be okay. (Then once everyone moves over to the new stuff you can drop or otherwise cleanup the table).
Make alter table statements, depending on the engine some can be non-locking/blocking.
Deploy code.
Enjoy.
Make alter table statements, depending on the engine some can be non-locking/blocking.
Deploy code.
Enjoy.
What tools and processes do you use for this? Are there any established best practices?
For more context, I'm using a managed SQL database and the application runs on Kubernetes.