diff --git a/migra/changes.py b/migra/changes.py index 264bb10..716d9f9 100644 --- a/migra/changes.py +++ b/migra/changes.py @@ -500,6 +500,11 @@ def functions(d): return statements +def _schemainspect_has_extension_enums(): + enum = schemainspect.pg.obj.InspectedEnum('name', 'schema', ['elements']) + return hasattr(enum, 'is_extension') + + class Changes(object): def __init__(self, i_from, i_target, ignore_extension_versions=False): self.i_from = i_from @@ -639,6 +644,15 @@ def sequences(self): modifications=False, ) + if _schemainspect_has_extension_enums(): + @property + def enums(self): + return partial( + statements_for_changes, + od((k, v) for k,v in self.i_from.enums.items() if not v.is_extension), + od((k, v) for k,v in self.i_target.enums.items() if not v.is_extension), + ) + def __getattr__(self, name): if name in THINGS: return partial(