keep original error message when wrapping in DatabaseError

See #2521 for more information

As an aside. I think `.parent` is a bad name for the original error. `.original` is a better name in my mind but maybe that has name conflicts?