From f9e1efeec76dd09e11506c5ed695d987d0db7a85 Mon Sep 17 00:00:00 2001 From: Kai Groner Date: Mon, 11 Jan 2021 13:18:52 -0500 Subject: [PATCH 1/2] don't emit schema for extension enums --- migra/changes.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/migra/changes.py b/migra/changes.py index 264bb10..de276bc 100644 --- a/migra/changes.py +++ b/migra/changes.py @@ -639,6 +639,14 @@ def sequences(self): modifications=False, ) + @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( From 60cf181f09b7289a8e66a5d74e4cdc2557222ffd Mon Sep 17 00:00:00 2001 From: Kai Groner Date: Wed, 13 Jan 2021 12:17:52 -0500 Subject: [PATCH 2/2] only enable extension enum if schemainspect supports it --- migra/changes.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/migra/changes.py b/migra/changes.py index de276bc..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,13 +644,14 @@ def sequences(self): modifications=False, ) - @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), - ) + 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: