On 03/27/2011 06:42 AM, -RAX- wrote: > I am referring to this: > http://docs.djangoproject.com/en/dev/releases/1.3/#filefield-no-longer-deletes-files > Instead of preventing the data loss from happening a very usefull > feature has been removed.
Well, it does also prevent the data loss from happening ;) This data loss is not a hypothetical problem; we had bug reports from users affected by it. > Why not simply letting the developer decide when to enable or disable > it with a constructor boolean parameter? > > My company sells multimedia web applications normally handling over > 10000 files over various models. > I am sorry to say that but to me the idea of running a cron job to > remove orphaned files does not seam to be practical. Shall I make a > query for each file? I don't see why that would be necessary. One query for each model containing one or more FileFields is enough to build a list of the files that ought to exist, and any file not in that list can presumably be removed. > The roll back data loss problem could have been solved by copying the > file into a temporary file and by restoring it if necessary. Emulating the transactional behavior of a relational database is not that trivial. We considered this approach carefully and decided that if we tried to go down that road, we'd be continually finding and fixing edge-case bugs in it, and any bug in it would be likely to be a data-loss bug. Deleting files when we can't be sure it's the right thing to do is a very dangerous business to be in. > Am I the only one who would like to see the previous behaviour > restored? Can we at least re-enable this feature from the file-field > constructor? If you want the previous behavior, it's not at all difficult to restore it with a post-save signal handler. You can make your own trivial subclass of FileField that attaches this post-save handler in the contribute_to_class method: that's precisely what FileField used to do. Carl -- You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.
