def vacuum(): console("Running VACUUM on sqlite database, this could take a while.") session = Session() session.execute("VACUUM") session.commit() session.close() console("VACUUM complete.")
def vacuum(): console('Running VACUUM on sqlite database, this could take a while.') session = Session() try: session.execute('VACUUM') session.commit() finally: session.close() console('VACUUM complete.')
def migrate_imdb_queue(manager): """If imdb_queue table is found, migrate the data to movie_queue""" session = Session() try: if table_exists('imdb_queue', session): log.info('Migrating imdb_queue items to movie_queue') old_table = table_schema('imdb_queue', session) for row in session.execute(old_table.select()): try: queue_add(imdb_id=row['imdb_id'], quality=row['quality'], session=session) except QueueError as e: log.error('Unable to migrate %s from imdb_queue to movie_queue' % row['title']) old_table.drop() session.commit() finally: session.close()
def migrate2(self): session = Session() try: from progressbar import ProgressBar, Percentage, Bar, ETA except: print 'Critical: progressbar library not found, try running `bin/easy_install progressbar` ?' return class Seen(Base): __tablename__ = 'seen' id = Column(Integer, primary_key=True) field = Column(String) value = Column(String, index=True) task = Column('feed', String) added = Column(DateTime) def __init__(self, field, value, task): self.field = field self.value = value self.task = task self.added = datetime.now() def __str__(self): return '<Seen(%s=%s)>' % (self.field, self.value) print '' # REPAIR / REMOVE DUPLICATES index = 0 removed = 0 total = session.query(Seen).count() + 1 widgets = ['Repairing - ', ETA(), ' ', Percentage(), ' ', Bar(left='[', right=']')] bar = ProgressBar(widgets=widgets, maxval=total).start() for seen in session.query(Seen).all(): index += 1 if index % 10 == 0: bar.update(index) amount = 0 for dupe in session.query(Seen).filter(Seen.value == seen.value): amount += 1 if amount > 1: removed += 1 session.delete(dupe) bar.finish() # MIGRATE total = session.query(Seen).count() + 1 widgets = ['Upgrading - ', ETA(), ' ', Percentage(), ' ', Bar(left='[', right=']')] bar = ProgressBar(widgets=widgets, maxval=total).start() index = 0 for seen in session.query(Seen).all(): index += 1 if not index % 10: bar.update(index) se = SeenEntry(u'N/A', seen.task, u'migrated') se.added = seen.added se.fields.append(SeenField(seen.field, seen.value)) session.add(se) bar.finish() session.execute('drop table seen;') session.commit()
def migrate2(self): session = Session() try: from progressbar import ProgressBar, Percentage, Bar, ETA except: print 'Critical: progressbar library not found, try running `bin/easy_install progressbar` ?' return class Seen(Base): __tablename__ = 'seen' id = Column(Integer, primary_key=True) field = Column(String) value = Column(String, index=True) task = Column('feed', String) added = Column(DateTime) def __init__(self, field, value, task): self.field = field self.value = value self.task = task self.added = datetime.now() def __str__(self): return '<Seen(%s=%s)>' % (self.field, self.value) print '' # REPAIR / REMOVE DUPLICATES index = 0 removed = 0 total = session.query(Seen).count() + 1 widgets = [ 'Repairing - ', ETA(), ' ', Percentage(), ' ', Bar(left='[', right=']') ] bar = ProgressBar(widgets=widgets, maxval=total).start() for seen in session.query(Seen).all(): index += 1 if index % 10 == 0: bar.update(index) amount = 0 for dupe in session.query(Seen).filter(Seen.value == seen.value): amount += 1 if amount > 1: removed += 1 session.delete(dupe) bar.finish() # MIGRATE total = session.query(Seen).count() + 1 widgets = [ 'Upgrading - ', ETA(), ' ', Percentage(), ' ', Bar(left='[', right=']') ] bar = ProgressBar(widgets=widgets, maxval=total).start() index = 0 for seen in session.query(Seen).all(): index += 1 if not index % 10: bar.update(index) se = SeenEntry(u'N/A', seen.task, u'migrated') se.added = seen.added se.fields.append(SeenField(seen.field, seen.value)) session.add(se) bar.finish() session.execute('drop table seen;') session.commit()