If you want to upgrade from earlier versions of Postgres.app, you will need to migrate your data.
Alternatively, you can make a custom version of 2 that supports the older server versions.
The reason for this is that it includes a lot of dynamic libraries that can be used by other software.
In case of adding a new column, you can set it temporarily as nullable and start gradually filling it with new values.
The main problem with this approach is the performance, it is a very slow process because in place updates are costly.
Removing postgresql-client-9.5 (9.5.3-1.pgdg16.04 1) ... Processing triggers for postgresql-common (174.pgdg16.04 1) ...
Building Postgre SQL dictionaries from installed myspell/hunspell packages...
update-alternatives: warning: forcing reinstallation of alternative /usr/share/postgresql/9.5/man/man1/postmaster.1because link group postmaster.1is broken Removing postgresql-9.5 (9.5.3-1.pgdg16.04 1) ...
invoke-rc.d: could not determine current runlevel invoke-rc.d: policy-rc.d denied execution of stop.
The admin panel informed me that I needed to update through SSH, and rebuild told me that I needed to migrate my database. The following packages will be REMOVED: postgresql-9.5 postgresql-client-9.5 postgresql-contrib-9.5 0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded.
Following the instructions, I updated my file to point to Ensuring launcher is up to date Fetching origin Launcher is up-to-date Stopping old container /usr/bin/docker stop -t 10 app app cd /pups && git pull && /pups/bin/pups --stdin From https://github.com/Sam Saffron/pups 2b8776d..7bde3d3 master - origin/master Updating 2b8776d..7bde3d3 Fast-forward | 2 - lib/pups/| 9 - 2 files changed, 9 insertions( ), 2 deletions(-) I, [2016-09-27T.510780 #17] INFO -- : Loading --stdin I, [2016-09-27T.523709 #17] INFO -- : echo cron is now included in base image, remove from templates I, [2016-09-27T.527893 #17] INFO -- : cron is now included in base image, remove from templates I, [2016-09-27T.529276 #17] INFO -- : apt-get remove -y postgresql-9.5 postgresql-client-9.5 postgresql-contrib-9.5 I, [2016-09-27T.930960 #17] INFO -- : Reading package lists... After this operation, 26.0 MB disk space will be freed. 34207 files and directories currently installed.) Removing postgresql-contrib-9.5 (9.5.3-1.pgdg16.04 1) ...
Can be used for upgrading legacy infrastructure and/or upgrading Postgres versions.
Requires downtime of about 3 minutes per GB, though this can vary substantially.
When you update a value in a column, Postgres writes a whole new row in the disk, deprecates the old row and then proceeds to update all indexes.