Skip to content

mineo/acoustid-server

 
 

Repository files navigation

Acoustid Server
===============

Dependencies
------------

 * PostgreSQL 8.4+
   http://www.postgresql.org/

 * Python 2.6+
   http://www.python.org/

 * SQLAlchemy
   http://www.sqlalchemy.org/

 * Psycopg2
   http://initd.org/psycopg/

 * Werkzeug
   http://werkzeug.pocoo.org/

 * Jinja2
   http://jinja.pocoo.org/

 * Python-OpenID
   http://pypi.python.org/pypi/python-openid/

 * Python-Markdown
   http://www.freewisdom.org/projects/python-markdown/

 * Chromaprint
   http://acoustid.org/chromaprint

Installation
------------

On Ubuntu you can install all dependencies using the following command:

 $ sudo add-apt-repository ppa:luks/acoustid
 $ sudo apt-get update
 $ sudo apt-get install postgresql postgresql-contrib postgresql-server-dev \
                        python-sqlalchemy python-werkzeug python-jinja2 \
                        python-openid python-markdown python-chromaprint \
                        python-psycopg2

Compile and install the included PostgreSQL extension:

 $ cd postgresql
 $ sudo make install clean
 $ cd ..

Prepare the configuration file:

 $ cp acoustid.conf.dist acoustid.conf
 $ vim acoustid.conf

Create the PostgreSQL database:

 $ sudo -u postgres createuser acoustid
 $ sudo -u postgres createdb -O acoustid acoustid

Install extensions into the newly created database:

 $ psql -U postgres acoustid <`pg_config --sharedir`/contrib/_int.sql
 $ psql -U postgres acoustid <`pg_config --sharedir`/contrib/pgcrypto.sql
 $ psql -U postgres acoustid <`pg_config --sharedir`/contrib/acoustid.sql

Create the database structure:

 $ ./run_psql.sh <sql/CreateTables.sql
 $ ./run_psql.sh <sql/CreateFunctions.sql
 $ ./run_psql.sh <sql/CreatePrimaryKeys.sql
 $ ./run_psql.sh <sql/CreateFKConstraints.sql
 $ ./run_psql.sh <sql/CreateIndexes.sql

Setup a MusicBrainz slave database (without custom extensions):

 $ cd /path/to/mbslave
 $ cp mbslave.conf.default mbslave.conf
 $ vim mbslave.conf
 $ echo 'CREATE SCHEMA musicbrainz;' | ./mbslave-psql.py
 $ sed 's/cube/text/i' sql/CreateTables.sql | ./mbslave-psql.py
 $ ./mbslave-import.py mbdump.tar.bz2 mbdump-derived.tar.bz2
 $ ./mbslave-psql.py <sql/CreatePrimaryKeys.sql
 $ vim sql/CreateFunctions.sql # remove functions that mention "cube"
 $ ./mbslave-psql.py <sql/CreateFunctions.sql
 $ grep -vE '(collate|page_index|gist)' sql/CreateIndexes.sql | ./mbslave-psql.py
 $ ./mbslave-psql.py <sql/CreateViews.sql
 $ ./mbslave-psql.py <sql/CreateSimpleViews.sql
 $ ./mbslave-sync.py

TODO

Unit Tests
----------

Before you can run the test suite, you need to create a configuration file
called acoustid-test.conf. This should use a separate database from the
one you use for development, but it should have the same structure. The
simplest way to create it is to copy your development database.

You can then run the test suite like this:

 $ nosetests -v

The first thing it does is setting up the database. Normally you shouldn't
need to do this more than once, so the next time you can run the test suite
without the database setup code:

 $ SKIP_DB_SETUP=1 nosetests -v

About

Web application for serving the Acoustid API and website

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 39.7%
  • Python 34.6%
  • C 19.5%
  • PHP 5.8%
  • Shell 0.4%