импорт дампа sql в базу данных postgresql
мы переключаем хосты, и старый предоставил SQL-дамп базы данных postgresql нашего сайта. Теперь я пытаюсь установить это на местном вампирском сервере, чтобы проверить это.
единственная проблема в том, что у меня нет идеи, как я могу импортировать эту базу данных в postgresql 9, который я настроил.
я попробовал pgAdmin III, но я не могу найти функцию "импорт". Поэтому я просто открыл редактор SQL и вставил туда содержимое дампа и выполнил его, он создает таблицы, но я продолжаю давать мне ошибки, когда он пытается поместить в них данные.
ERROR: syntax error at or near "t"
LINE 474: t 2011-05-24 16:45:01.768633 2011-05-24 16:45:01.768633 view...
The lines:
COPY tb_abilities (active, creation, modtime, id, lang, title, description) FROM stdin;
t 2011-05-24 16:45:01.768633 2011-05-24 16:45:01.768633 view nl ...
Я также попытался это с командной строки, но я не могу найти команду, которая мне нужна.
Если я делаю
psql mydatabase < C:/database/db-backup.sql;
Я получаю ошибку
ERROR: syntax error at or near "psql"
LINE 1: psql mydatabase < C:/database/db-backu...
^
каков наилучший способ импорта базы данных?
10 ответов
psql databasename < data_base_dump
это команда, которую вы ищете.
остерегайтесь: имя базы данных должно быть создано перед импортом. Взгляните на PostgreSQL Docs Глава 23. Резервное копирование и восстановление.
Я не уверен, что это работает для ситуации OP, но я обнаружил, что выполнение следующей команды в интерактивной консоли было самым гибким решением для меня:
\i 'path/to/file.sql'
просто убедитесь, что вы подключены к нужной базе данных. Эта команда выполняет все команды SQL в указанном файле.
работает довольно хорошо, в командной строке требуются все аргументы, - W для пароля
psql -h localhost -U user -W -d database_name -f path/to/file.sql
просто для удовольствия, если ваш дамп сжат, вы можете сделать что-то вроде
gunzip -c filename.gz | psql dbname
Как упоминал Джейкоб,PostgreSQL docs опишите все это довольно хорошо.
вы можете сделать это в pgadmin3. Удалите схемы, которые содержит дамп. Затем щелкните правой кнопкой мыши базу данных и выберите Восстановить. Затем вы можете найти файл дампа.
Я использую:
cat /home/path/to/dump/file | psql -h localhost -U <user_name> -d <db_name>
надеюсь, что это поможет кому-то.
Я заметил, что многие примеры слишком сложны для localhost, где во многих случаях существует только пользователь postgres без пароля:
psql -d db_name -f dump.sql