diff --git a/archivebox/index/sql.py b/archivebox/index/sql.py index d4c9a84b..2fcabd61 100644 --- a/archivebox/index/sql.py +++ b/archivebox/index/sql.py @@ -23,9 +23,11 @@ def parse_sql_main_index(out_dir: Path=OUTPUT_DIR) -> Iterator[Link]: ) @enforce_types -def remove_from_sql_main_index(snapshots: QuerySet, out_dir: Path=OUTPUT_DIR) -> None: - with transaction.atomic(): - snapshots.delete() +def remove_from_sql_main_index(snapshots: QuerySet, atomic: bool=False, out_dir: Path=OUTPUT_DIR) -> None: + if atomic: + with transaction.atomic(): + return snapshots.delete() + return snapshots.delete() @enforce_types def write_link_to_sql_index(link: Link): @@ -41,7 +43,7 @@ def write_link_to_sql_index(link: Link): while Snapshot.objects.filter(timestamp=info["timestamp"]).exists(): info["timestamp"] = str(float(info["timestamp"]) + 1.0) - snapshot, _ = Snapshot.objects.update_or_create(url=link.url, defaults=info) + snapshot, _ = Snapshot.objects.update_or_create(url=link.url, defaults=info) snapshot.save_tags(tags) for extractor, entries in link.history.items(): @@ -80,29 +82,35 @@ def write_link_to_sql_index(link: Link): @enforce_types def write_sql_main_index(links: List[Link], out_dir: Path=OUTPUT_DIR) -> None: - with transaction.atomic(): - for link in links: - write_link_to_sql_index(link) + for link in links: + # with transaction.atomic(): + # write_link_to_sql_index(link) + write_link_to_sql_index(link) @enforce_types def write_sql_link_details(link: Link, out_dir: Path=OUTPUT_DIR) -> None: from core.models import Snapshot - with transaction.atomic(): - try: - snap = Snapshot.objects.get(url=link.url) - except Snapshot.DoesNotExist: - snap = write_link_to_sql_index(link) - snap.title = link.title + # with transaction.atomic(): + # try: + # snap = Snapshot.objects.get(url=link.url) + # except Snapshot.DoesNotExist: + # snap = write_link_to_sql_index(link) + # snap.title = link.title + try: + snap = Snapshot.objects.get(url=link.url) + except Snapshot.DoesNotExist: + snap = write_link_to_sql_index(link) + snap.title = link.title - tag_set = ( - set(tag.strip() for tag in (link.tags or '').split(',')) - ) - tag_list = list(tag_set) or [] + tag_set = ( + set(tag.strip() for tag in (link.tags or '').split(',')) + ) + tag_list = list(tag_set) or [] - snap.save() - snap.save_tags(tag_list) + snap.save() + snap.save_tags(tag_list)