There's DROP ROLE IF EXISTS, which I'm using.
2012/6/22 Tom Lane <tgl@xxxxxxxxxxxxx>
Roles are not considered to be part of an extension: they really can't
be, since an extension is local to a database while a role is global to
the whole installation. As per the documentation, you're allowed to do
CREATE ROLE in an extension script but it won't be managed by the
extension mechanism.
Not sure about a better solution to your problem offhand. It might be
sane for the script to do CREATE ROLE IF NOT EXISTS, if we had that,
which we do not :-(
Victor Y. Yegorov