Sign up ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I'm new to GIS related things and I'm setting up a Postgre/Postgis database for geospatial queries. I'd like to import various shapefiles into the database and I found that Pgadmin3 has a shapefile importer. How do I install the shapefile import plugin for pgadmin3 (I'm on Mountain Lion 10.8)?

Right now, the plugin menu is empty, and I have the very latest of Postgres and Postgis. See my comment below about what I've seen elsewhere on this topic.

share|improve this question
which Mac OS are you on? – Mapperz May 23 '13 at 23:43
see Mike Toews Answer… – Mapperz May 23 '13 at 23:49
I'm on Mountain Lion (10.8) and the questions you posted is for Windows 7. That's just my problem. All of the documentation I've seen has been on Windows and most of what I've read says pgadmin3 comes with it by default--but I don't have it, for some reason :( – Glen May 24 '13 at 1:20
think the only way to load shapefiles is via shp2pgsql… – Mapperz May 24 '13 at 1:44
QGIS (mac version) will load shapefiles to postgis databases using the SPIT tool – Mapperz May 24 '13 at 1:47

3 Answers 3

up vote 4 down vote accepted

I decided to go ahead and use the command line utility (shp2pgsql) to import my .shp file. Since I was able to get it working without too much trouble and a little Googling around I wanted to share this possible solution for anyone else who just wants to import a .shp file into Postgres and didn't want to deal with the hassle of trying to get pgadmin's GUI geospatial data importer. To import a shapefile here is the command (of course you need both Postgres and Postgis installed, first):

shp2pgsql -I -s <SRID> <PATH/TO/SHAPEFILE> <SCHEMA>.<DBTABLE> | psql -d <DATABASE>

And here's the OpenGeo docs explaining each of the above parameters:

The command parameters are:
<SRID>Spatial reference identifier
<PATH/TO/SHAPEFILE>Full path to the shapefile (such as C:\MyData\roads\roads.shp)
<SCHEMA>Target schema where the new table will be created
<DBTABLE>New database table to be created (usually the same name as the source shapefile)
<DATABASE>Target database where the table will be created

So just as an example, here was my command:

shp2pgsql -I -s 3857 ~/Downloads/MoGeospatialData/MO_2012_Senate_Districts.shp public.geospatial-data | psql -p 5432 -d vetting-geospatial

If you're not sure where to get the SRID just go here and upload your .prj file and use the topmost match it generates:

And for a comprehensive explanation of this CLI and importing data in general, just check out this great documentation from OpenGeo:

I hope this helps someone!

share|improve this answer
I had an instance running on macosx docker using boot2docker. I just added the -h -p ???? -U docker args to the psql and it worked fined as well. – Emile Sep 8 '14 at 15:54

You might have to add the following to your plugins.ini file:

; pgShapeLoader (OSX):
Title=PostGIS Shapefile and DBF loader
Command=/usr/bin/open /Applications/OpenGeo/ --args '-U $$USERNAME -d $$DATABASE -p $$PORT -h $$HOSTNAME'
Description=Open a PostGIS ESRI Shapefile or Plain dbf loader console to the current database.

You'll most probably have to tweak the paths a little to fit your configuration. I got this file from the OpenGeo Suite install. Hopefully this should be enough to point you in the right direction. Good luck!

share|improve this answer

R.K.'s answer is heading in the right direction. Unfortunately, the file is needed (within /Applications/OpenGeo/), otherwise the script with plugins.ini will now execute properly (it has no file to reference). I'm not sure the file is available anywhere other than OpenGeoSuite. Ironically, if you download the OpenGeoSuite and install postGIS from it, the phShapeLoader should already be installed and ready to go.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.