From f72b7661599ecb962ceea57204f65240721f1ecd Mon Sep 17 00:00:00 2001 From: ailepet Date: Tue, 20 Jan 2026 17:20:44 +0100 Subject: [PATCH 1/3] feat(endorsements): prepare for 0.31 migration --- .../demo/macros/coalesce_legacy_and_new_columns.sql | 11 +++++++++++ .../decidim/proposals/stg_decidim_proposals.sql | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 projects/demo/macros/coalesce_legacy_and_new_columns.sql diff --git a/projects/demo/macros/coalesce_legacy_and_new_columns.sql b/projects/demo/macros/coalesce_legacy_and_new_columns.sql new file mode 100644 index 00000000..75fc985a --- /dev/null +++ b/projects/demo/macros/coalesce_legacy_and_new_columns.sql @@ -0,0 +1,11 @@ +{% macro coalesce_legacy_and_new_columns(relation, legacy_column_name, new_column_name) %} + {% set columns = adapter.get_columns_in_relation(relation) %} + {% set column_names = columns | map(attribute="name") %} + + {% if legacy_column_name in column_names %} + {{ legacy_column_name }} + {% else %} + {{ new_column_name }} AS {{ legacy_column_name }} + {% endif %} + +{% endmacro %} \ No newline at end of file diff --git a/projects/demo/models/staging/decidim/proposals/stg_decidim_proposals.sql b/projects/demo/models/staging/decidim/proposals/stg_decidim_proposals.sql index 99aa5633..f8547c42 100644 --- a/projects/demo/models/staging/decidim/proposals/stg_decidim_proposals.sql +++ b/projects/demo/models/staging/decidim/proposals/stg_decidim_proposals.sql @@ -14,7 +14,7 @@ SELECT {{ stg_proposals_get_state(source('decidim', 'decidim_proposals_proposals')) }} AS state, {{ get_column_if_exists(source('decidim', 'decidim_proposals_proposals'), 'decidim_proposals_proposal_state_id', 'INTEGER') }}, comments_count, - endorsements_count, + {{ coalesce_legacy_and_new_columns(source('decidim', 'decidim_proposals_proposals'), 'endorsements_count', 'likes_count') }}, follows_count, address FROM {{ source('decidim', 'decidim_proposals_proposals') }} \ No newline at end of file From 98e3d9399e9f963d8c39214fb8d20003d8f3c3e5 Mon Sep 17 00:00:00 2001 From: ailepet Date: Tue, 20 Jan 2026 17:46:13 +0100 Subject: [PATCH 2/3] fix unit tests --- projects/demo/models/staging/decidim/proposals/schema.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/demo/models/staging/decidim/proposals/schema.yml b/projects/demo/models/staging/decidim/proposals/schema.yml index c85714da..e70fabf1 100644 --- a/projects/demo/models/staging/decidim/proposals/schema.yml +++ b/projects/demo/models/staging/decidim/proposals/schema.yml @@ -6,7 +6,7 @@ unit_tests: - input: source('decidim', 'decidim_proposals_proposals') format: dict rows: - - {id: 1} + - {id: 1, endorsements_count: 0} expect: format: dict rows: @@ -19,7 +19,7 @@ unit_tests: - input: source('decidim', 'decidim_proposals_proposals') format: dict rows: - - {id: 1} + - {id: 1, endorsements_count: 0} expect: format: dict rows: From 6274250525b875104376445d3ac4d81f1a2b0c9b Mon Sep 17 00:00:00 2001 From: ailepet Date: Thu, 22 Jan 2026 12:00:01 +0100 Subject: [PATCH 3/3] add dummy column creation to coalesce macro --- projects/demo/macros/coalesce_legacy_and_new_columns.sql | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/projects/demo/macros/coalesce_legacy_and_new_columns.sql b/projects/demo/macros/coalesce_legacy_and_new_columns.sql index 75fc985a..abc222ca 100644 --- a/projects/demo/macros/coalesce_legacy_and_new_columns.sql +++ b/projects/demo/macros/coalesce_legacy_and_new_columns.sql @@ -4,8 +4,10 @@ {% if legacy_column_name in column_names %} {{ legacy_column_name }} - {% else %} + {% elif new_column_name in column_names %} {{ new_column_name }} AS {{ legacy_column_name }} + {% else %} + {{ get_column_if_exists(relation, legacy_column_name, cast_type="TEXT", default_value="NULL", include_alias=True) }} {% endif %} {% endmacro %} \ No newline at end of file