#!/usr/bin/env python import os import itertools from lxml import etree as ET from lxml.builder import E from mbslave import Config, connect_db from mbslave.search import fetch_all cfg = Config(os.path.join(os.path.dirname(__file__), 'mbslave.conf')) db = connect_db(cfg) print '<add>' for doc in fetch_all(cfg, db): print ET.tostring(doc) print '</add>'
parser = OptionParser() parser.add_option("-S", "--no-schema", action="store_true", dest="public", default=False, help="don't configure the default schema") parser.add_option("-s", "--schema", dest="schema", default='musicbrainz', help="default schema") options, args = parser.parse_args() config = Config(os.path.dirname(__file__) + '/mbslave.conf') args = ['psql'] args.append('-U') args.append(config.get('DATABASE', 'user')) if config.has_option('DATABASE', 'host'): args.append('-h') args.append(config.get('DATABASE', 'host')) if config.has_option('DATABASE', 'port'): args.append('-p') args.append(config.get('DATABASE', 'port')) args.append(config.get('DATABASE', 'name')) if not options.public: schema = config.schema.name(options.schema) os.environ['PGOPTIONS'] = '-c search_path=%s,public' % schema
url += '?token=' + token print "Downloading", url try: data = urllib2.urlopen(url, timeout=60) except urllib2.HTTPError, e: if e.code == 404: return None raise tmp = tempfile.NamedTemporaryFile(suffix='.tar.bz2') shutil.copyfileobj(data, tmp) data.close() tmp.seek(0) return tmp config = Config( os.path.join(os.path.dirname(os.path.abspath(__file__)), 'mbslave.conf')) db = connect_db(config) base_url = config.get('MUSICBRAINZ', 'base_url') if config.has_option('MUSICBRAINZ', 'token'): token = config.get('MUSICBRAINZ', 'token') else: token = None ignored_schemas = set(config.get('schemas', 'ignore').split(',')) ignored_tables = set(config.get('TABLES', 'ignore').split(',')) hook_class = ReplicationHook cursor = db.cursor() cursor.execute( "SELECT current_schema_sequence, current_replication_sequence FROM %s.replication_control"