Half of the problems in this article are migration related.

I am extremely grateful that some people have created awesome libraries like strong migrations https://github.com/ankane/strong_migrations.

Even if you are not using rails, you can bookmark its readme, it is an awesome cheat-sheet on how to do common database migrations.

You might also be interested in Reshape, a tool I’ve been working on to automate zero-downtime deployments with Postgres: https://github.com/fabianlindfors/reshape