I want to import OSM file into my PostgreSQL database (Windows, Postgres Version 9.2) using the tool Osm2pgsql.
When I run following command
osm2pgsql.exe --create -d mydb artyom.xml -U myuser -W --style default.style
I get the error
SELECT AddGeometryColumn('planet_osm_point', 'way', 900913, 'POINT', 2 );
failed: FEHLER: Funktion addgeometrycolumn(unknown, unknown, integer, unknown,
integer) existiert nicht
LINE 1: SELECT AddGeometryColumn('planet_osm_point', 'way', 900913, ...
^
HINT: Keine Funktion stimmt mit dem angegebenen Namen und den Argumenttypen ├╝b
erein. Sie m├╝ssen m├Âglicherweise ausdr├╝ckliche Typumwandlungen hinzuf├╝gen.
Error occurred, cleaning up
Translation from German:
SELECT AddGeometryColumn('planet_osm_point', 'way', 900913, 'POINT', 2 );
failed: ERROR: Function addgeometrycolumn(unknown, unknown, integer, unknown,
integer) doesn't exist
LINE 1: SELECT AddGeometryColumn('planet_osm_point', 'way', 900913, ...
^
HINT: No function matches the specified name and argument types. Maybe you need
to make explicit casts.
Error occurred, cleaning up
How can I fix this?
It looks like you haven't added PostGIS support to the database you're trying to use osm2pgsql.exe
on. See the PostGIS installation documentation (2.0).
Since you are using PostGIS 2.0, you should be able to just CREATE EXTENSION postgis;
to load PostGIS. This command must be run as a superuser - normally the user postgres
. Use:
psql -U postgres mydbname
to connect as user postgres
.
It appears that at least the Windows builds of osm2pgsql
don't support PostGIS 2.0 - or didn't about six months ago, anyway. See this issue report on the OSM GitHub, and the instructions on how to set a PostGIS 2 database to be compatible with an osm2pgsql that expects PostGIS 1.x. Future readers should check that these steps are still actually required before proceeding; it's likely that osm2pgsql
for Windows will be updated to support PostGIS 2 at some point.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With