From 37abb942e327281eaafc8c4502d670ea6f46cff3 Mon Sep 17 00:00:00 2001 From: Oliver Rice Date: Fri, 16 Jul 2021 06:53:01 -0500 Subject: [PATCH] do not populate materialized views with data during simulation --- src/alembic_utils/__init__.py | 2 +- src/alembic_utils/simulate.py | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/alembic_utils/__init__.py b/src/alembic_utils/__init__.py index 49e0fc1..a5f830a 100644 --- a/src/alembic_utils/__init__.py +++ b/src/alembic_utils/__init__.py @@ -1 +1 @@ -__version__ = "0.7.0" +__version__ = "0.7.1" diff --git a/src/alembic_utils/simulate.py b/src/alembic_utils/simulate.py index 610f212..906b117 100644 --- a/src/alembic_utils/simulate.py +++ b/src/alembic_utils/simulate.py @@ -1,4 +1,5 @@ # pylint: disable=unused-argument,invalid-name,line-too-long +import copy import logging from contextlib import ExitStack, contextmanager from typing import TYPE_CHECKING, List, Optional @@ -21,6 +22,14 @@ def simulate_entity( """Creates *entiity* in a transaction so postgres rendered definition can be retrieved """ + + # When simulating materialized view, don't populate them with data + from alembic_utils.pg_materialized_view import PGMaterializedView + + if isinstance(entity, PGMaterializedView) and entity.with_data: + entity = copy.deepcopy(entity) + entity.with_data = False + deps: List["ReplaceableEntity"] = dependencies or [] try: