First ensure that you have both Postgres and QGIS installed on your machine.
In order for you to be able to connect to Postgres from QGIS on local host you must ensure 2 things. Firstly that the PostGIS plugin has been installed on your laptop AND secondly that you have included the postgis extension in each database that you wish to connect to. Without enabling the extension in the database you won’t be able to connect OR import shape files. Installation of PostGIS is often a default during the install of postgres but you can check whether this was completed correctly by using the Application Stack Builder, a small program that is installed with later versions of postgres.
I navigated to this on the win 8.1 machine I was using by using search.
Opening application stack builder you will be presented with the following.
Expand the spatial extensions tree to identify if you already have the PostGIS plugin installed – if not – select as appropriate the plugin and you will be prompted to install. You will need an internet connection for this. Above you can see that my plugin was already installed.
Next you need to add the PostGIS extension to each Postgres database you wish to link to from QGIS this is done through PG Admin.
This is something that both myself and a colleague got caught out by and it took me an hour of searching to find how to fix it.
Below I have a database called GISData which I have just created. You will note there is only one object within the expanded extensions tree. You will not be able to connect to a database that does not include PostGIS in its list of extensions
Hi-light the database you want to spatially enable then go to Tools – Query Tool( Ctrl + E will do the same). In the above picture I’ve slightly jumped the gun. To add the extension to the database type.
CREATE EXTENSION postgis
Run the query by selecting the green right arrow
There will be a short delay and then upon refresh of the connection postgis should appear in the list of extensions.
You can now close the Postgres administrator and return to QGIS where you should be able to setup the connection to the database.
Parameters should be similar to below and it is useful to test the connection prior to saving.