MusicBrainz数据库工具

mbdata的Python项目详细描述


MusicBrainz数据库副本

此存储库现在包含用于管理 MusicBrainz数据库的副本。这些过去被称为"mbslave", 但已移动到此存储库。

这些脚本的主要动机是能够定制 你的数据库。如果你不需要这样的监护,可能是 更易于使用MusicBrainz自己提供的复制工具。

安装

  1. 确保已安装了 python psycopg2 。 在debian和ubuntu上,这意味着安装这些包:

    sudo apt install python python-pip python-psycopg2
    pip install -U mbdata  # if you don't have it installed already
    

    该命令将把 mbslave 脚本安装到 $home/.local/bin中。

  2. 在metabrainz网站上获取api令牌。

  3. 通过复制和编辑创建mbslave.conf

    curl https://raw.githubusercontent.com/lalinsky/mbdata/master/mbslave.conf.default -o mbslave.conf
    vim mbslave.conf
    

    默认情况下,mbslave脚本将在当前目录中查找配置文件。 如果您想从任何地方找到它,请将其保存到 /etc/mbslave.conf 或 设置 mbslave_config 环境变量。例如:

    export MBSLAVE_CONFIG=/usr/local/etc/mbslave.conf
    
  4. 设置数据库。如果你从零开始, 您可以使用以下命令来设置干净的数据库:

    sudo su - postgres
    createuser musicbrainz
    createdb -l C -E UTF-8 -T template0 -O musicbrainz musicbrainz
    createlang plpgsql musicbrainz
    psql musicbrainz -c 'CREATE EXTENSION cube;'
    psql musicbrainz -c 'CREATE EXTENSION earthdistance;'
    
  5. 为musicbrainz数据库准备空模式并创建表结构:

    echo 'CREATE SCHEMA musicbrainz;' | mbslave psql -S
    echo 'CREATE SCHEMA statistics;' | mbslave psql -S
    echo 'CREATE SCHEMA cover_art_archive;' | mbslave psql -S
    echo 'CREATE SCHEMA wikidocs;' | mbslave psql -S
    echo 'CREATE SCHEMA documentation;' | mbslave psql -S
    
    mbslave psql -f CreateTables.sql
    mbslave psql -f statistics/CreateTables.sql
    mbslave psql -f caa/CreateTables.sql
    mbslave psql -f wikidocs/CreateTables.sql
    mbslave psql -f documentation/CreateTables.sql
    
  6. 从下载musicbrainz数据库转储文件 http://ftp.musicbrainz.org/pub/musicbrainz/data/fullexport/

  7. 导入数据转储,例如:

    mbslave import mbdump.tar.bz2 mbdump-derived.tar.bz2
    
  8. 设置主键、索引和视图:

    mbslave psql -f CreatePrimaryKeys.sql
    mbslave psql -f statistics/CreatePrimaryKeys.sql
    mbslave psql -f caa/CreatePrimaryKeys.sql
    mbslave psql -f wikidocs/CreatePrimaryKeys.sql
    mbslave psql -f documentation/CreatePrimaryKeys.sql
    
    mbslave psql -f CreateIndexes.sql
    mbslave psql -f CreateSlaveIndexes.sql
    mbslave psql -f statistics/CreateIndexes.sql
    mbslave psql -f caa/CreateIndexes.sql
    
    mbslave psql -f CreateFunctions.sql
    mbslave psql -f CreateViews.sql
    
  9. 清空新创建的数据库(可选):

    echo 'VACUUM ANALYZE;' | mbslave psql
    

复制

在初始数据库设置之后,您可能需要使用最新数据更新数据库。 mbslave sync脚本将从musicbrainz获取更新并将其应用到本地数据库:

mbslave sync

为了定期更新数据库,请添加这样一个每小时运行一次的cron作业:

sudo apt install python python-pip python-psycopg2
pip install -U mbdata  # if you don't have it installed already
0

架构升级

当musicbrainz数据库架构更改时,复制将停止工作。 这通常在musicbrainz博客上宣布。 发生这种情况时,您需要升级数据库。

发布日期:2019-05-14(25)

运行升级脚本:

sudo apt install python python-pip python-psycopg2
pip install -U mbdata  # if you don't have it installed already
1

发布日期:2017-05-25(24)

运行升级脚本:

sudo apt install python python-pip python-psycopg2
pip install -U mbdata  # if you don't have it installed already
2

提示和技巧

单个数据库模式

默认情况下,musicbrainz使用了许多模式。如果要将musicbrainz数据库嵌入 作为应用程序的现有数据库,可以方便地将它们合并到单个模式中。 这可以通过改变y来实现我们的配置如下:

sudo apt install python python-pip python-psycopg2
pip install -U mbdata  # if you don't have it installed already
3

在此之后,您只需创建"musicbrainz"模式并导入其中的所有表即可。

完全导入架构升级

您可以使用模式映射功能对数据库进行零停机升级 数据导入。您可以临时将所有模式映射到"musicbrainz_new",导入新模式 数据库,然后重命名:

sudo apt install python python-pip python-psycopg2
pip install -U mbdata  # if you don't have it installed already
4

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
ApplyTransfermListener。Marklogic Java客户端Api中的ApplyResult?   java安卓:如何从服务调用方法   java如何在Junit中测试Servlet3.0注释基础servlet和嵌入Tomcat7   java在JSF中嵌入portlet   java检查多个向量是否是回文的?   Selenium Java页面对象模型查询   Java中运算符的优先级   java从包含透明像素的图像创建自定义JButton   hibernate Java类变量与其他变量的声明   安卓错误:任务执行失败:应用程序:mergeDebugResources'>JAVAlang.OutOfMemoryError:无法创建新的本机线程   java从localhost运行portlet   当用户输入索引时打印数组元素的java程序   在Windows 10上运行时出现java Blazegraph错误   javascript-spring有条件地加载资源