path = os.path.join(base_path, table)
        logger.info("Exporting %s to %s", table, path)
        with open(path, 'w') as fileobj:
            if sql is None:
                copy_sql = "COPY %s TO STDOUT" % table
            else:
                copy_sql = "COPY (%s) TO STDOUT" % sql
            cursor.copy_expert(copy_sql, fileobj)


def main(script, opts, args):
    conn = script.db_engines['app'].connect()
    conn.detach()
    with closing(conn):
        conn.connection.rollback()
        conn.connection.set_session(psycopg2.extensions.ISOLATION_LEVEL_SERIALIZABLE)
        cursor = conn.connection.cursor()
        if opts.full:
            export_tables(cursor, 'acoustid-dump', CORE_TABLES, opts.data_dir)
            export_tables(cursor, 'acoustid-musicbrainz-dump', MUSICBRAINZ_TABLES, opts.data_dir)
        conn.connection.commit()

 
def add_options(parser):
    parser.add_option("-d", "--dir", dest="data_dir", default="/tmp/acoustid-export", help="directory")
    parser.add_option("-f", "--full", dest="full", action="store_true",
        default=False, help="full export")


run_script(main, add_options)
        print 'graph_title Fingerprint lookup time'
        print 'graph_vlabel ms'
        print 'graph_args --base 1000 -l 0'
        print 'graph_scale no'
        print 'graph_category acoustid'
        print 'time.label Average lookup time (5m)'
        print 'time.draw LINE2'
        print 'time.type GAUGE'
        return
    redis = script.redis
    one_minute = datetime.timedelta(minutes=1)
    total_ms = 0.0
    total_count = 0
    time = datetime.datetime.now() - one_minute
    for i in range(5):
        key = time.strftime('%Y-%m-%d:%H:%M')
        ms = redis.hget('lookups.time.ms', key)
        count = redis.hget('lookups.time.count', key)
        if ms and count:
            total_ms += int(ms)
            total_count += int(count)
        time -= one_minute
    if not total_count:
        total_ms = 0.0
        total_count = 1
    print 'time.value', total_ms / total_count


run_script(main)

    fp.close()


def export_replication(cursor):
    create_replication_packet(cursor)
    create_musicbrainz_replication_packet(cursor)
    cursor.execute("DELETE FROM mirror_queue")


def main(script, opts, args):
    conn = script.engine.connect()
    conn.detach()
    with closing(conn):
        conn.connection.rollback()
        conn.connection.set_session(psycopg2.extensions.ISOLATION_LEVEL_SERIALIZABLE)
        cursor = conn.connection.cursor()
        export_replication(cursor)
        if opts.full:
            export_tables(cursor, 'acoustid-dump', CORE_TABLES)
            export_tables(cursor, 'acoustid-musicbrainz-dump', MUSICBRAINZ_TABLES)
        conn.connection.commit()

 
def add_options(parser):
    parser.add_option("-f", "--full", dest="full", action="store_true",
        default=False, help="full export")


run_script(main, add_options)

Example #4
0
#!/usr/bin/env python

# Copyright (C) 2011 Lukas Lalinsky
# Distributed under the MIT license, see the LICENSE file for details.

from acoustid.script import run_script
from acoustid.data.track import merge_missing_mbids


def main(script, opts, args):
    conn = script.engine.connect()
    with conn.begin():
        merge_missing_mbids(conn)


run_script(main, master_only=True)
#!/usr/bin/env python

# Copyright (C) 2011 Lukas Lalinsky
# Distributed under the MIT license, see the LICENSE file for details.

from acoustid.script import run_script
from acoustid.data.track import merge_missing_mbids


def main(script, opts, args):
    conn = script.engine.connect()
    with conn.begin():
        merge_missing_mbids(conn)

run_script(main, master_only=True)