PostgreSQL 9.3 Импорт дампов в таблицу psql разочарование новичка

Я работаю на Windows Server 2008 с дампом базы данных musicbrainz. Я без проблем распаковал дамп, и есть около 60 файлов без расширений, чьи имена отражают таблицы базы данных.

Мне удалось заставить работать скрипт sql createtables, который я нашел на github, и у меня есть схема базы данных с пустыми таблицами, которые отражают файлы, которые я распаковал.

Проблема в том, что я нахожусь в интерфейсе командной строки psql, и я выяснил, как выполнить команду импорта большого объекта согласно

\lo_import 'путь / имя файла'

Кажется, это работает, потому что файлы очень большие, и в тот момент, когда я запускаю процессор, индикатор начинает мигать, как сумасшедший. Проблема вернулась в Postgres после того, как я обновил свою базу данных, таблицы все еще пусты. Я понятия не имею, где эти данные, если где-нибудь.

Я программист Windows (.NET/SQL/JQuery), поэтому мне нужен кто-то, кто может объяснить, что происходит с этой точки зрения. Боюсь, объяснение того, что работает в unix, linux или в чем-то другом, кроме windows, не поможет.

2 ответа

Рекомендуемый способ импорта наших дампов данных - следовать инструкциям в файле INSTALL, входящем в комплект сервера musicbrainz:

https://github.com/metabrainz/musicbrainz-server/blob/master/INSTALL

Упомянутые вами "60 файлов без расширения" являются простыми файлами, разделенными табуляцией, вы можете импортировать их вручную с помощью команды postgresql COPY FROM, но, опять же, это не рекомендуется.

Чтобы получить доступ к базе данных musicbrainz, может быть проще получить нашу виртуальную машину, см. http://wiki.musicbrainz.org/MusicBrainz_Server/Setup

Вы можете просто импортировать данные дампа sql в базу данных postgres.

если вы уже создали БД, вам не нужно выполнять 1-й шаг: -

ШАГ=1

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

sudo -u postgres psql

postgres=# create database mydb;

postgres=# create user myuser with encrypted password 'mypass';

postgres=# grant all privileges on database mydb to myuser;

ШАГ=2

\c используется для выбора вашей базы данных.

postgres=# \c yourdatabasename

\i используется для импорта данных дампа в базу данных.

yourdatabasename=# \i path_of_your_dump_fileНапример:-

yourdatabasename=# \i /home/developer/projects/django_projects/db_dump.sql

Если вы столкнулись с ошибкой этого типа при импорте данных:

ERROR: role "yourusername" does not exist

поэтому вы можете сделать суперпользователя своим «db_user/yourusername», используя эту команду: -

postgres=# ALTER USER fusion WITH SUPERUSER;

ALTER ROLE

Другие вопросы по тегам