Sto scrivendo uno script di manutenzione rapida e sporco per eliminare alcune righe e vorrei evitare di dover portare le mie classi ORM/mapping dal progetto principale. Ho una domanda che sembra simile a:Come eliminare le righe da una tabella utilizzando una query SQLAlchemy senza ORM?
address_table = Table('address',metadata,autoload=True)
addresses = session.query(addresses_table).filter(addresses_table.c.retired == 1)
Secondo tutto quello che ho letto, se stavo usando l'ORM (non 'solo' tavoli) e passato in qualcosa di simile:
addresses = session.query(Addresses).filter(addresses_table.c.retired == 1)
potrei aggiungere una .delete()
alla query, ma quando provo a farlo usando solo le tabelle ottengo un reclamo:
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_'
che ha un senso perché è un tavolo, non una classe. Sono abbastanza verde quando si tratta di SQLAlchemy, come dovrei fare questo?
Grazie. Vedo dove ho sbagliato. Una combinazione di un vecchio tutorial e di una documentazione obsoleta. –