docs: document the process of upgrading major postgres versions
While it would be nice to automatically handle this, there is a ton of pain in doing so. Rather than being smart about it, document the process so that users can make rational decisions about their upgrade process. Closes dokku/dokku-postgres#219
This commit is contained in:
31
README.md
31
README.md
@@ -401,6 +401,37 @@ You can upgrade an existing service to a new image or image-version:
|
||||
dokku postgres:upgrade lollipop
|
||||
```
|
||||
|
||||
Postgres does not handle upgrading data for major versions automatically (eg. 11 => 12). Upgrades should be done manually. Users are encouraged to upgrade to the latest minor release for their postgres version before performing a major upgrade.
|
||||
|
||||
While there are many ways to upgrade a postgres database, for safety purposes, it is recommended that an upgrade is performed by exporting the data from an existing database and importing it into a new database. This also allows testing to ensure that applications interact with the database correctly after the upgrade, and can be used in a staging environment.
|
||||
|
||||
The following is an example of how to upgrade a postgres database named `lollipop-11` from 11.13 to 12.8.
|
||||
|
||||
```shell
|
||||
# stop any linked apps
|
||||
dokku ps:stop linked-app
|
||||
|
||||
# export the database contents
|
||||
dokku postgres:export lollipop-11 > /tmp/lollipop-11.export
|
||||
|
||||
# create a new database at the desired version
|
||||
dokku postgres:create lollipop-12 --image-version 12.8
|
||||
|
||||
# import the export file
|
||||
dokku postgres:import lollipop-12 < /tmp/lollipop-11.export
|
||||
|
||||
# run any sql tests against the new database to verify the import went smoothly
|
||||
|
||||
# unlink the old database from your apps
|
||||
dokku postgres:unlink lollipop-11 linked-app
|
||||
|
||||
# link the new database to your apps
|
||||
dokku postgres:link lollipop-12 linked-app
|
||||
|
||||
# start the linked apps again
|
||||
dokku ps:start linked-app
|
||||
```
|
||||
|
||||
### Service Automation
|
||||
|
||||
Service scripting can be executed using the following commands:
|
||||
|
||||
30
docs/upgrade.md
Normal file
30
docs/upgrade.md
Normal file
@@ -0,0 +1,30 @@
|
||||
Postgres does not handle upgrading data for major versions automatically (eg. 11 => 12). Upgrades should be done manually. Users are encouraged to upgrade to the latest minor release for their postgres version before performing a major upgrade.
|
||||
|
||||
While there are many ways to upgrade a postgres database, for safety purposes, it is recommended that an upgrade is performed by exporting the data from an existing database and importing it into a new database. This also allows testing to ensure that applications interact with the database correctly after the upgrade, and can be used in a staging environment.
|
||||
|
||||
The following is an example of how to upgrade a postgres database named `lollipop-11` from 11.13 to 12.8.
|
||||
|
||||
```shell
|
||||
# stop any linked apps
|
||||
dokku ps:stop linked-app
|
||||
|
||||
# export the database contents
|
||||
dokku postgres:export lollipop-11 > /tmp/lollipop-11.export
|
||||
|
||||
# create a new database at the desired version
|
||||
dokku postgres:create lollipop-12 --image-version 12.8
|
||||
|
||||
# import the export file
|
||||
dokku postgres:import lollipop-12 < /tmp/lollipop-11.export
|
||||
|
||||
# run any sql tests against the new database to verify the import went smoothly
|
||||
|
||||
# unlink the old database from your apps
|
||||
dokku postgres:unlink lollipop-11 linked-app
|
||||
|
||||
# link the new database to your apps
|
||||
dokku postgres:link lollipop-12 linked-app
|
||||
|
||||
# start the linked apps again
|
||||
dokku ps:start linked-app
|
||||
```
|
||||
Reference in New Issue
Block a user