Мне нужно установить расстояние от земли, расширение для Postgresql. На странице для этого написано:
Модуль Earthdistance предоставляет два разных подхода к вычислению расстояний по большому кругу на поверхности Земли. Тот, который описан первым, зависит от пакета cube (который должен быть установлен перед установкой earthdistance). Второй основан на встроенном типе данных точки с использованием долготы и широты в качестве координат.
Кажется, это правда ..
dealermade=# CREATE EXTENSION earthdistance FROM unpackaged;
ERROR: required extension "cube" is not installed
Однако я не могу установить cube
либо
dealermade=# CREATE EXTENSION cube FROM unpackaged;
ERROR: type "cube" does not exist
Кажется неловким cube
расширение требует cube
тип, который он предоставляет. я использую PostgreSQL 9.1.1
. Я делаю это в Ubuntu, и у меня есть сопутствующий пакет postgresql-contrib-9.1
установлены. Тем не менее, нет cube.sql
в моей системе.
Если я попытаюсь установить earthdistance.sql
прямо я получаю это
$ psql -d db -f /usr/share/postgresql/9.1/extension/earthdistance--1.0.sql
CREATE FUNCTION
psql:/usr/share/postgresql/9.1/extension/earthdistance--1.0.sql:31: ERROR: type "cube" does not exist
CREATE FUNCTION
CREATE FUNCTION
psql:/usr/share/postgresql/9.1/extension/earthdistance--1.0.sql:49: ERROR: type "earth" does not exist
psql:/usr/share/postgresql/9.1/extension/earthdistance--1.0.sql:55: ERROR: type earth does not exist
psql:/usr/share/postgresql/9.1/extension/earthdistance--1.0.sql:61: ERROR: type earth does not exist
psql:/usr/share/postgresql/9.1/extension/earthdistance--1.0.sql:67: ERROR: type earth does not exist
psql:/usr/share/postgresql/9.1/extension/earthdistance--1.0.sql:73: ERROR: type earth does not exist
psql:/usr/share/postgresql/9.1/extension/earthdistance--1.0.sql:79: ERROR: could not access file "MODULE_PATHNAME": No such file or directory
psql:/usr/share/postgresql/9.1/extension/earthdistance--1.0.sql:88: ERROR: function geo_distance(point, point) does not exist
FROM unpackaged используется только тогда, когда он уже установлен как модуль contrib (т.е. после обновления с 9.0), и вам нужно превратить его в расширение. Поэтому просто:
CREATE EXTENSION cube;
CREATE EXTENSION earthdistance;