def delete_qc_entries(alyx_model): model_info = qc_update_models[alyx_model] qc_keys = update_utils.get_deleted_keys(alyx_model) + \ update_utils.get_updated_keys(alyx_model, fields=['qc', 'extended_qc']) logger.log( 25, f'Deleting updated entries for {alyx_model} from alyxraw fields...') (alyxraw.AlyxRaw.Field & [dict(fname=f) for f in model_info['alyx_fields']] & qc_keys).delete_quick() logger.log( 25, f'Deleting updated qc and extended_qc for {alyx_model} from ingest tables...' ) uuids_dict_list = [{model_info['uuid_name']: k['uuid']} for k in qc_keys] q_real = model_info['ref_table'] & uuids_dict_list for m in model_info['ingest_tables']: (m & uuids_dict_list).delete_quick() logger.log( 25, f'Deleting updated qc and extended_qc for {alyx_model} from real tables...' ) for m in model_info['real_tables']: (m & q_real).delete_quick()
def delete_histology_real(): traj_uuids = update_utils.get_deleted_keys('experiments.trajectoryestimate') + \ update_utils.get_updated_keys('experiments.trajectoryestimate') traj_uuids_real = [ {'probe_trajectory_uuid': k['uuid']} for k in traj_uuids] traj_keys = (histology.ProbeTrajectoryTemp & traj_uuids_real).fetch('KEY') for t in HISTOLOGY_TABLES_FOR_DELETE: print(f'Deleting from table {t.__name__}') (t & traj_keys).delete_quick()
def delete_qc_entries(): qc_keys = update_utils.get_deleted_keys(alyx_model) + \ update_utils.get_updated_keys(alyx_model, fields=['qc', 'extended_qc']) logger.log(25, 'Deleting updated qc and extended_qc from alyxraw...') (alyxraw.AlyxRaw.Field & 'fname in ("qc", "extended_qc")' & qc_keys).delete_quick() logger.log(25, 'Deleting updated qc and extended_qc from shadow tables') session_uuids = [{'session_uuid': k['uuid']} for k in qc_keys] sessions = acquisition.Session & session_uuids (qc_ingest.SessionQCIngest & session_uuids).delete_quick() (qc_ingest.SessionQC & sessions).delete_quick() (qc_ingest.SessionExtendedQC.Field & sessions).delete_quick() (qc_ingest.SessionExtendedQC & sessions).delete_quick() logger.log(25, 'Deleting updated qc and extended_qc from real tables') (qc.SessionExtendedQC.Field & sessions).delete_quick() (qc.SessionExtendedQC & sessions).delete_quick() (qc.SessionQC & sessions).delete_quick()
def delete_histology_alyx_shadow(verbose=False): CHANNEL_TABLES = [ histology_ingest.ChannelBrainLocationTemp, alyxraw.AlyxRaw.Field, alyxraw.AlyxRaw ] channel_loc_keys = update_utils.get_deleted_keys('experiments.channel') for t in CHANNEL_TABLES: print(f'Deleting from table {t.__name__}') uuid_name = t.heading.primary_key[0] keys = [{uuid_name: k['uuid']} for k in tqdm(channel_loc_keys)] table = QueryBuffer(t) for k in tqdm(keys, position=0): table.add_to_queue1(k) if table.flush_delete(chunksz=1000, quick=True) and verbose: print(f'Deleted 1000 entries from {t.__name__}') table.flush_delete(quick=True) traj_keys = update_utils.get_deleted_keys('experiments.trajectoryestimate') + \ update_utils.get_updated_keys('experiments.trajectoryestimate') TRAJ_TABLES = [ histology_ingest.ProbeTrajectoryTemp, alyxraw.AlyxRaw.Field, alyxraw.AlyxRaw ] for t in TRAJ_TABLES: uuid_name = t.heading.primary_key[0] keys = [{uuid_name: k['uuid']} for k in traj_keys] table = QueryBuffer(t) for k in tqdm(keys, position=0): table.add_to_queue1(k) if table.flush_delete(chunksz=1000, quick=True) and verbose: print(f'Deleted 1000 entries from {t.__name__}') table.flush_delete(quick=True)