Как удалить строки из таблицы с помощью запроса SQLAlchemy без ORM?

Я пишу быстрый и грязный сценарий обслуживания, чтобы удалить некоторые строки, и хотел бы избежать необходимости переносить свои классы/отображения ORM из основного проекта. У меня есть запрос, похожий на:

address_table = Table('address',metadata,autoload=True)
addresses = session.query(addresses_table).filter(addresses_table.c.retired == 1)

Судя по всему, что я читал, если бы я использовал ORM (не «только» таблицы) и передал что-то вроде:

addresses = session.query(Addresses).filter(addresses_table.c.retired == 1)

я мог бы добавить . delete()на запрос, но когда я пытаюсь сделать это, используя только таблицы, я получаю жалобу:

File "/usr/local/lib/python2.6/dist-packages/sqlalchemy/orm/query.py", line 2146, in delete
    target_cls = self._mapper_zero().class_
AttributeError: 'NoneType' object has no attribute 'class_'

Что имеет смысл, так как это таблица, а не класс. Я совсем новичок в SQLAlchemy, что мне делать с этим?

33
задан John Carter 27 March 2012 в 02:17
поделиться