Skip to content

Commit

Permalink
Merge pull request #115 from vipyrsec/rollback-sqla-bulk-insert
Browse files Browse the repository at this point in the history
Rollback SQLAlchemy bulk insert
  • Loading branch information
Robin5605 committed Jul 20, 2023
2 parents 4c1c108 + 8a2b096 commit 77df378
Showing 1 changed file with 8 additions and 13 deletions.
21 changes: 8 additions & 13 deletions src/mainframe/endpoints/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
from letsbuilda.pypi.async_client import PyPIServices # type: ignore
from letsbuilda.pypi.exceptions import PackageNotFoundError
from sqlalchemy import select
from sqlalchemy.dialects.postgresql import insert
from sqlalchemy.exc import IntegrityError
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.orm import selectinload
Expand Down Expand Up @@ -204,18 +203,14 @@ async def batch_queue_package(

rows.append(scan)

params = [
dict(
name=row.name,
version=row.version,
status=row.status,
queued_by=row.queued_by,
download_urls=[dict(url=url.url) for url in row.download_urls],
)
for row in rows
]
await session.execute(insert(Scan).on_conflict_do_nothing(), params)
await session.commit()
async with session.begin():
for row in rows:
try:
async with session.begin_nested():
session.add(row)
except IntegrityError:
print("Skipping duplicate")
pass


@router.post(
Expand Down

0 comments on commit 77df378

Please sign in to comment.