def handle(self, *args, **options): db = ExportSchema.get_db() for index in ExportSchema.get_all_indices(): last = ExportSchema.last(index) if not last.timestamp: config = ExportConfiguration(db, index, disable_checkpoints=True) config.create_new_checkpoint() assert ExportSchema.last(index).timestamp print "set timestamp for %s" % index else: print "%s all set" % index
def build_latest_schema(schema_index): """ Build a schema, directly from the index. Also creates a saved checkpoint. """ from couchexport.export import ExportConfiguration db = Database(settings.COUCH_DATABASE) previous_export = ExportSchema.last(schema_index) try: current_seq = int(db.info()["update_seq"]) except ValueError: pass # we must be on bigcouch, so comparing seqs is useless else: if previous_export and not previous_export.is_bigcouch \ and int(previous_export.seq) > current_seq: # something weird happened (like the couch database changing) # better rebuild from scratch previous_export = None config = ExportConfiguration(db, schema_index, previous_export=previous_export) schema = config.get_latest_schema() if not schema: return None updated_checkpoint = config.create_new_checkpoint() return updated_checkpoint
def get_export_components(self, previous_export_id=None, filter=None): from couchexport.export import ExportConfiguration database = get_db() config = ExportConfiguration(database, self.index, previous_export_id, self.filter & filter) # get and checkpoint the latest schema updated_schema = config.get_latest_schema() export_schema_checkpoint = config.create_new_checkpoint() return config, updated_schema, export_schema_checkpoint
def rebuild_schemas(index): """ Resets the schema for all checkpoints to the latest version based off the current document structure. Returns the number of checkpoints updated. """ db = ExportSchema.get_db() all_checkpoints = ExportSchema.get_all_checkpoints(index) config = ExportConfiguration(db, index, disable_checkpoints=True) latest = config.create_new_checkpoint() for cp in all_checkpoints: cp.schema = latest.schema cp.save() return len(all_checkpoints)
def build_latest_schema(schema_index): """ Build a schema, directly from the index. Also creates a saved checkpoint. """ from couchexport.export import ExportConfiguration db = Database(settings.COUCH_DATABASE) previous_export = ExportSchema.last(schema_index) config = ExportConfiguration(db, schema_index, previous_export=previous_export) schema = config.get_latest_schema() if not schema: return None updated_checkpoint = config.create_new_checkpoint() return updated_checkpoint