Deploying new code which relies on a non-backward-compatible database changes - how do you update the application and the database without any downtime?
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.
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.