Feature #20388

Removing attachment after commit transaction

Added by Ivan Zabrovskiy over 7 years ago. Updated about 7 years ago.

Status:ClosedStart date:
Priority:NormalDue date:
Assignee:Jean-Philippe Lang% Done:


Target version:3.2.0


Now in Attachment model is

after_destroy :delete_from_disk

If you want to construct a serious logic with Rollback this behaviour leads to remove file from disk, but leave an attachment record in DB.
In my project I replaced this callback on

after_commit :delete_from_disk, on: :destroy

and it works perfect.

I think this is a good modification for Redmine. It have full backward compatibility but can extend ability for strong logic in app.

Associated revisions

Revision 14630
Added by Jean-Philippe Lang about 7 years ago

Remove attachment after transaction commit (#20388).

Patch by Ivan Zabrovskiy.


#1 Updated by Toshi MARUYAMA over 7 years ago

  • Target version set to 3.2.0

#2 Updated by Ivan Zabrovskiy over 7 years ago

Notice: in Rails 4 appear new config option related with transaction callbacks:

config.active_record.raise_in_transactional_callbacks = true
It allows to propagate errors from transaction callbacks. Preferable to turn it on.

#3 Updated by Jean-Philippe Lang about 7 years ago

  • Status changed from New to Closed
  • Assignee set to Jean-Philippe Lang
  • Resolution set to Fixed

Change committed in r14630, thanks.

Also available in: Atom PDF