我正在使用musicbrainz数据库转储在Windows Server 2008上工作。我解压缩转储没有问题,大约有60个文件没有扩展名,其名称镜像数据库表。
我设法得到一个我在github上找到的createtables sql脚本工作,我有一个数据库模式,其中的空表反映了我解压缩的文件。
问题是我在psql命令行界面,我想出了如何按照
发出大对象导入命令\ lo_import'path / filename'
它似乎工作,因为文件非常大,我执行CPU灯的那一刻开始像疯了一样闪烁。在刷新我的数据库之后,问题又出现在Postgres中,表仍然是空的。我不知道数据在哪里发生。
我是一个直接的Windows程序员(.NET / SQL / JQuery),所以我需要一个可以从这个角度解释发生了什么的人。解释unix或linux或Windows以外的任何功能都无济于事。
答案 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