It is possible to have zero-downtime deployments, you just need to make sure that your DB schema is always backward compatible with at least one previous version. So dropping a column should be postponed until you release code that does not use it anymore. Renaming a column: add a new column, copy data to the new column and use trigger to sync new incoming data. After deployment or during another deployment drop the old column and etc. There are some rules have to follow and it’s more manual work but it’s possible

    Justinas Urbanavičius

    Written by