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.exeon. 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 userpostgres. Use:to connect as user
postgres.It appears that at least the Windows builds of
osm2pgsqldon’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 thatosm2pgsqlfor Windows will be updated to support PostGIS 2 at some point.