PostgreSQL 9.3导入转储到表psql新手挫折

时间:2012-04-17 12:18:23

标签: windows postgresql musicbrainz

我正在使用musicbrainz数据库转储在Windows Server 2008上工作。我解压缩转储没有问题,大约有60个文件没有扩展名,其名称镜像数据库表。

我设法得到一个我在github上找到的createtables sql脚本工作,我有一个数据库模式,其中的空表反映了我解压缩的文件。

问题是我在psql命令行界面,我想出了如何按照

发出大对象导入命令

\ lo_import'path / filename'

它似乎工作,因为文件非常大,我执行CPU灯的那一刻开始像疯了一样闪烁。在刷新我的数据库之后,问题又出现在Postgres中,表仍然是空的。我不知道数据在哪里发生。

我是一个直接的Windows程序员(.NET / SQL / JQuery),所以我需要一个可以从这个角度解释发生了什么的人。解释unix或linux或Windows以外的任何功能都无济于事。

2 个答案:

答案 0 :(得分:1)

导入数据转储的推荐方法是遵循musicbrainz服务器附带的INSTALL文件中的说明:

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

您提到的“没有扩展名的60个文件”是简单的制表符分隔文件,您可以使用postgresql COPY FROM命令手动导入这些文件,但不建议这样做。

要访问musicbrainz数据库,可能更容易获取我们的虚拟机,请参阅http://wiki.musicbrainz.org/MusicBrainz_Server/Setup

答案 1 :(得分:0)

您可以简单地将 sql 转储数据导入您的 postgres 数据库。

如果您已经创建了数据库,则无需执行第一步:-

STEP=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;

STEP=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