I think we are missing an option here where we drop constraints by name.  This is important if the uniqueness constraint has changed (a new column added, a column removed).

For names supplied to us, this is doable.  For generated names, the drop likely misses.  But its a best effort.  If users want consistent updating of the constraint they should explicitly name them