загрузка функций postgis в базу данных PostgreSQL 8.3.7 с помощью pgAdmin

Я пытаюсь загрузить файлы postgis.sql в базу данных pgAdmin (используя psql), которая уже была создана, поэтому я могу создать базу данных с пространственной поддержкой. Я подтвердил, что язык "plpgsql" уже существует, но не могу выполнить следующие функции:

psql -d yourdatabase -f lwpostgis.sql;
psql -d yourdatabase -f lwpostgis_upgrade.sql;
psql -d yourdatabase -f spatial_ref_sys.sql;

Я просто получаю общую «синтаксическую ошибку на уровне или около ...».

Может быть, я неправильно форматирую строку, потому что из того, что я прочитал, это должно работать? мне действительно нужен "psql"? что делает "-d"? Я пробовал без psql перед командами и bupkiss. Мысли ценятся ... спасибо.


person Beardo    schedule 07.11.2012    source источник
comment
pgAdmin — это графический интерфейс. Вы имеете в виду PostgreSQL? Добавьте номера версий к используемому программному обеспечению, пожалуйста.   -  person Erwin Brandstetter    schedule 07.11.2012
comment
моя вина; да, я имею в виду PostgreSQL версии 8.3.7, psql версии 9.1.4.   -  person Beardo    schedule 07.11.2012
comment
Команды, которые вы цитируете, предназначены для ввода в интерпретатор оболочки или cmd.exe при использовании MS-Windows. Судя по кусочкам вашего вопроса, похоже, что вы уже используете какую-то другую программу (предположительно, pgAdmin или сам psql), когда печатаете это.   -  person Daniel Vérité    schedule 08.11.2012
comment
@Daniel, спасибо за информацию! Я действительно набираю эти команды в psql со своего компьютера. База данных, postGIS и PostgreSQL находятся на сервере и компьютере в конце коридора. pgAdmin находится здесь на моей машине... не будет ли это возможно через psql?   -  person Beardo    schedule 08.11.2012
comment
Конечно, это возможно, я отправил ответ на этот счет, но вам нужно оставить pgAdmin в стороне. psql и pgAdmin являются взаимоисключающими.   -  person Daniel Vérité    schedule 08.11.2012
comment
попался - я обращался к psql через меню pulgins в pgAdmin III   -  person Beardo    schedule 08.11.2012


Ответы (1)


Параметр -d yourdatabase устанавливает соединение с этой базой данных после запуска psql.
Параметр -f file.sql требует загрузки файла file.sql и выполнения всех содержащихся в нем команд SQL.

Если вы уже находитесь внутри psql, эквивалентными командами будут:

\c yourdatabase: подключиться к базе данных с именем yourdatabase.

\i file.sql: загружает file.sql и выполняет в нем все команды. Он должен быть в текущем пути, в противном случае укажите полный путь.

person Daniel Vérité    schedule 07.11.2012
comment
@ Даниил, спасибо за помощь. На самом деле я обнаружил, что проблема заключалась в том, что я не мог правильно указать путь к серверу. В итоге я поместил отдельные файлы на свой компьютер и загрузил их с помощью phpPgAdmin, потому что psql не выполнял файлы и выдавал мне ошибки... многие из них. - person Beardo; 08.11.2012