Cluster migration can be done in different ways depending on requirements and plans.
It is possible to upgrade/downgrade automatically and seamlessly between shared plans. Go to the ElephantSQL control panel and press Edit and change plan type.
There are a couple of options if you would like to migrate between dedicated plans.
A fork creates a new instance with all the current state of your existing instance. Go to the ElephantSQL control panel and press Fork on any dedicated instance or create a new dedicated instance and select Fork in the Configuration step. You can fork from your active ElephantSQL instances or by providing a postgres url.
You are also able to fork a new ElephantSQL instance from any
PostgreSQL server. Just grab your connection URL and we will fork the
current state into a fully managed instance.
We will set up a replication connection via
pg_basebackup
and promote the new instance once all State has been restored.
One import thing to note is that the credentials in the connection URL must be
from either a superuser or a role with replication privileges.
You can choose to create new instances as a point in time recovery of a running instance. The most recent base backup, before the chosen time, will be restored on the target instance, WAL will be replayed until the target time is reached and promotion will take place.
This option works for migration between shared and dedicated instances.
Automated backups are performed every day on all paid plans (pg_dump). These are all accessible to you from the ElephantSQL control panel for 30 days.
For free plans, you need to initiate the backup.
All backups are compressed with lzop. To restore the data you can
usually use the following command:
lzop -cd "$FILE_NAME" | psql "$DATABASE_URL"
A backup API is available, that allows you to list, create, and restore from backups programmatically.