Как импортировать существующие * .sql файлы в PostgreSQL 8.4? - PullRequest
94 голосов
/ 03 августа 2010

Я использую PostgreSQL 8.4, и у меня есть несколько * .sql файлов для импорта в базу данных. Как я могу это сделать?

Ответы [ 5 ]

132 голосов
/ 03 августа 2010

Из командной строки:

psql -f 1.sql
psql -f 2.sql

Из приглашения psql:

\i 1.sql
\i 2.sql

Обратите внимание, что вам может потребоваться импортировать файлы в определенном порядке (например, определение данных перед манипулированием данными). Если у вас есть bash оболочка (GNU / Linux, Mac OS X, Cygwin) и файлы могут быть импортированы в алфавитном порядке , вы можете использовать эту команду:

for f in *.sql ; do psql -f $f ; done

Вот документация к приложению psql (спасибо, Фрэнк): http://www.postgresql.org/docs/current/static/app-psql.html

73 голосов
/ 03 августа 2010

в командной строке сначала перейдите в каталог, где присутствует psql, затем напишите команды, подобные этой:

psql [database name] [username]

, а затем нажмите enter. Psql просит ввести пароль, введите пароль пользователя:

, затем запишите

> \i [full path and file name with extension]

, затем нажмите ввод, вставка завершена.

32 голосов
/ 27 марта 2015

Ну, самый короткий путь, который я знаю, следующий:

psql -U {user_name} -d {database_name} -f {file_path} -h {host_name}

имя_базы_данных: В какую базу данных вы должны вставить свои данные файла.

file_path: Абсолютный путь к файлу, через который вы хотите выполнить импорт.

имя_хоста: Имя хоста.В целях разработки это в основном localhost.

. При вводе этой команды в консоли вам будет предложено ввести пароль.

23 голосов
/ 30 января 2012

Будьте осторожны с "/" и "\". Даже на Windows команда должна быть в форме:

\i c:/1.sql
1 голос
/ 12 ноября 2017

Всегда предпочтительнее использовать файл службы соединений (lookup / google 'psql файл службы соединений')

Тогда просто:

psql service={yourservicename} < {myfile.sql}

Где yourservicename - имя раздела из служебного файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...