Skip to main content

How to Upgrade PostgreSQL from 9.6 to 10.0 on Ubuntu 16


A Step-by-Step Guide to upgrade postgresql from 9-6 to 10 on ubuntu 16

1.Make a backup. Make sure that your database is not being updated.

  pg_dumpall > outputfile

 2. Install Postgres 10.
            a) Create the file /etc/apt/sources.list.d/pgdg.list and add a line for the repository
                   deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main
         
            b) Import the repository signing key, and update the package lists
                  wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get update

3. Run sudo apt-get install postgresql-10. A newer version will be installed side-by-side with the earlier version.

4. Run pg_lsclusters:

Ver  Cluster   Port     Status  Owner      Data        directory Log file
9.6   main       5433    online    postgres   /9.6/main   /var/log/postgresql/postgresql-9.6-main.log
10    main       5432    online   postgres   /10/main   /var/log/postgresql/postgresql-10-main.log

There already is a cluster main for 10 (since this is created by default on package installation). This is done so that a fresh installation works out of the box without the need to create a cluster first, but of course it clashes when you try to upgrade 9.6/main when 10/main also exists. The recommended procedure is to remove the 10 cluster with pg_dropcluster and then upgrade with pg_upgradecluster. 

5. Stop the 10 cluster and drop it: sudo pg_dropcluster 10 main --stop

6. Stop all processes and services writing to the database. Stop the database:
           sudo systemctl stop postgresql

7. Upgrade the 9.6 cluster: sudo pg_upgradecluster -m upgrade 9.6 main

8. Run pg_lsclusters. Your 9.6 cluster should now be "down", and the 10 cluster should be online at 5432:

Ver  Cluster   Port     Status  Owner      Data        directory Log file
9.6   main       5433    down    postgres   /9.6/main   /var/log/postgresql/postgresql-9.6-main.log
10    main       5432    online   postgres   /10/main   /var/log/postgresql/postgresql-10-main.log

Comments

Popular posts from this blog

Complete guide: integrating POSTGIS with Laravel

PostGIS - It is an open-source software extension for the PostgreSQL relational database management system. It enables support for geographic objects and spatial queries, making it a powerful tool for working with geographic information systems (GIS) data. PostGIS allows you to store, manipulate, and analyze spatial data, such as points, lines, polygons, and other geometric objects. How to Setup PostGIS with Laravel To set up PostGIS with Laravel, you'll need to follow a few steps. PostGIS is an extension for PostgreSQL that allows you to work with geospatial data, and Laravel is a popular PHP framework. Before proceeding, ensure you have PostgreSQL installed on your server or local development environment. Here's a step-by-step guide to setting up PostGIS with Laravel: 1. Install Laravel: If you haven't already, install Laravel using Composer. Open your terminal and run the following command: composer create-project --prefer-dist laravel/laravel project-name 2. Configure...

NGROK for Laravel

Share Your Local PHP/Laravel  using Ngrok This post shows how to share your Laravel Framework Installation on Ubuntu but you can perform the same with other operating systems as well. What is Ngrok ngrok is a simplified API-first ingress-as-a-service that adds connectivity,security, and observability to your apps in one line.It allows you to create a tunnel very fast for free and Laravel has an internal webserver that can be used without configuration. Why Ngrok Ngrok allows developers to expose their locally hosted applications to the internet, which is useful for testing and debugging purposes. It eliminates the need to deploy the application to a remote server for testing, saving time and effort.Mostly Ngrok is used where we need to test webhook locally.Ngrok enables developers to receive these webhooks on their local machine, facilitating the development and testing of webhook-based functionality. How to use Ngrok Assuming you have Laravel installed correctly, you can fo...

Sending Emails in Laravel with Gmail SMTP

This post will help you to fix issue like  Error : Swift_TransportException in StreamBuffer . php line 268 : Connection could not be established with host smtp . gmail . com [ Connection refused #111] Sending emails is crucial for any web application. Usually, an email is sent to notify the user of some kind of activity.Here are the steps to send email in laravel using Gmail SMTP. Generally Gmail is not recommended to send emails on live server, but if you just using it for testing purpose then follow these steps: 1. Visit   https://myaccount.google.com/security   make sure you have allowed  less secure app  to YES. 2. Unlock captcha on  https://accounts.google.com/b/0/DisplayUnlockCaptcha . 3. Generate APP password  Turn on 2-Step Verification for your account  https://myaccount.google.com/security. Your app might not support the latest security standards. Try changing a few settings to allow less secure...