Skip to content
This repository has been archived by the owner on Jan 25, 2022. It is now read-only.

metabrainz/geordi

Repository files navigation

geordi

This project allows the consumption of arbitrary data, for use as a data source and matching tool.

Geordi La Forge

It's named after Geordi La Forge, in reference to MusicBrainz Picard.

Setup

Shared dependencies:

  • postgresql

You will also need to be able to install python packages, we recommend using virtualenvwrapper for this. On Debian/Ubuntu systems you can install that with:

sudo apt-get install virtualenvwrapper

Python dependencies:

mkvirtualenv geordi

The mkvirtualenv command will create and activate a virtual environment in which python modules will be installed. You can re-active this environment with the following command:

workon geordi

To install all the dependencies run:

pip install -r requirements.txt

Configuration

In the geordi/geordi directory, copy settings.cfg.sample to settings.cfg; modify database connection settings, set MusicBrainz OAuth configuration, and make any other needed changes.

Creating database

To create a database matching the default configuration run:

createdb -O geordi geordi

Then create the schema by running:

echo 'CREATE SCHEMA geordi' | psql -U geordi geordi

Creating tables

To create tables in an existing database run:

python manager.py create_tables

(replace 'python' with 'python2' where applicable)

Importing Data

To import data, use the manager.py script in the 'geordi' directory. Various options exist under the 'data' subcommand, for which documentation exists. Source-specific import tools are in the geordi.data.importer module, mostly under the 'indexes' subdirectory.

Running server

To run the server:

cd geordi
python manager.py runserver

(replace 'python' with 'python2' where applicable)

Testing

To run tests, install nose (remember to enable your virtualenv!):

pip install nose

And then run the tests, you should see something like this:

$ nosetests
..
----------------------------------------------------------------------
Ran 2 tests in 0.121s

OK

Further Documentation

The geordi server has some additional documentation as well.