Postgres has index concurrently which is better or few other instant things which MySQL 8 also has but you still need to be careful.
But some things like adding a column with default value is still hard.
https://www.braintreepayments.com/blog/safe-operations-for-h... this article has a good guideline on this.