Загрузка...

SQLALCHEMY is not removed from the database

Thread in Python created by Hollywood May 1, 2025. 122 views

  1. Hollywood
    Hollywood Topic starter May 1, 2025 э 20,122 Oct 28, 2020
    Python
    async def del_user(user_id: int):
    async with async_session() as session:
    try:
    await session.execute(delete(User).where(User.id==user_id).returning(User.id))
    await session.commit()
    except IntegrityError as e:
    await session.rollback()
    пишет что все хорошо и удалилось, но в бд записи отсались.

    бд:
    Python
    class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True, index=True)
    user_id = Column(BigInteger, unique=True)
    business_connection = Column(String)
     
  2. противоположник
    скинь как ты вызываешь del_user() и передаешь user_id
     
    1. View previous comments (1)
    2. противоположник
      Hollywood, ты сравниваешь
      ⁡user.id == user_id
      ⁡, но скорее всего тебе надо
      ⁡user.user_id == user_id

      Python
      async def del_user(user_id: int):
      async with async_session() as session:
      try:
      await session.execute(
      delete(User).where(User.user_id == user_id)
      )
      await session.commit()
      except IntegrityError as e:
      await session.rollback()
      May 1, 2025 Edited
    3. Hollywood Topic starter
    4. Hollywood Topic starter
  3. Rostelecom
    Rostelecom May 1, 2025 0 Jun 11, 2024
    Code
    async def del_user(user_id: int):
    async with async_session() as session:
    try:
    result = await session.execute(
    delete(User).where(User.user_id == user_id)
    )
    await session.commit()

    # Проверяем, была ли удалена хотя бы одна строка
    if result.rowcount > 0:
    return True
    return False

    except Exception as e: # лучше ловить все исключения для диагностики
    await session.rollback()
    print(f"Error deleting user: {e}")
    return False
     
Top
Loading...