From 057eba018cc582429ff779d738615208f226e4cb Mon Sep 17 00:00:00 2001 From: ailepet Date: Tue, 20 Jan 2026 16:12:54 +0100 Subject: [PATCH 1/3] feat: transform "likes" back into "endorsements" --- .../coalesce_legacy_and_new_columns.sql | 11 ++++++++++ .../blogs_posts/stg_decidim_blogs_posts.sql | 1 + .../decidim/debates/stg_decidim_debates.sql | 1 + .../proposals/stg_decidim_proposals.sql | 3 ++- .../decidim/stg_decidim_endorsements.sql | 22 ++++++++++++++++++- 5 files changed, 36 insertions(+), 2 deletions(-) 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/blogs_posts/stg_decidim_blogs_posts.sql b/projects/demo/models/staging/decidim/blogs_posts/stg_decidim_blogs_posts.sql index ccde2504..508718c0 100644 --- a/projects/demo/models/staging/decidim/blogs_posts/stg_decidim_blogs_posts.sql +++ b/projects/demo/models/staging/decidim/blogs_posts/stg_decidim_blogs_posts.sql @@ -8,5 +8,6 @@ SELECT created_at, decidim_author_id, {{ get_column_if_exists(source('decidim', 'decidim_blogs_posts'), 'published_at', 'TIMESTAMP') }}, + {{ coalesce_legacy_and_new_columns(source('decidim', 'decidim_proposals_proposals'), 'endorsements_count', 'likes_count') }}, 'Decidim::Blogs::Post' AS resource_type FROM {{ source('decidim', 'decidim_blogs_posts') }} diff --git a/projects/demo/models/staging/decidim/debates/stg_decidim_debates.sql b/projects/demo/models/staging/decidim/debates/stg_decidim_debates.sql index b5673123..b096557a 100644 --- a/projects/demo/models/staging/decidim/debates/stg_decidim_debates.sql +++ b/projects/demo/models/staging/decidim/debates/stg_decidim_debates.sql @@ -14,6 +14,7 @@ renamed AS ( decidim_author_id, created_at, closed_at, + {{ coalesce_legacy_and_new_columns(source('decidim', 'decidim_proposals_proposals'), 'endorsements_count', 'likes_count') }}, 'Decidim::Debates::Debate' as resource_type FROM source ) 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..bf3e58aa 100644 --- a/projects/demo/models/staging/decidim/proposals/stg_decidim_proposals.sql +++ b/projects/demo/models/staging/decidim/proposals/stg_decidim_proposals.sql @@ -9,12 +9,13 @@ SELECT decidim_scope_id, created_at, published_at, + {{ get_column_if_exists(source('decidim', 'decidim_proposals_proposals'), 'deleted_at', 'TIMESTAMP') }}, {{ get_column_if_exists(source('decidim', 'decidim_proposals_proposals'), 'withdrawn_at', 'TIMESTAMP') }}, {{ get_column_if_exists(source('decidim', 'decidim_proposals_proposals'), 'valuation_assignments_count', 'INTEGER') }}, {{ 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 diff --git a/projects/demo/models/staging/decidim/stg_decidim_endorsements.sql b/projects/demo/models/staging/decidim/stg_decidim_endorsements.sql index b24dd144..b291f8ab 100644 --- a/projects/demo/models/staging/decidim/stg_decidim_endorsements.sql +++ b/projects/demo/models/staging/decidim/stg_decidim_endorsements.sql @@ -1,3 +1,23 @@ +{% set lang = var('DBT_LANG', 'fr') %} + +{% set relation = adapter.get_relation( + database=target.database, + schema='public', + identifier='decidim_likes' +) %} + +{% if relation is not none %} +SELECT + id, + resource_type, + resource_id, + decidim_author_type, + decidim_author_id, + decidim_user_group_id, + created_at, + updated_at +FROM {{ source('decidim', 'decidim_likes') }} +{% else %} SELECT id, resource_type, @@ -8,4 +28,4 @@ SELECT created_at, updated_at FROM {{ source('decidim', 'decidim_endorsements') }} - \ No newline at end of file +{% endif %} \ No newline at end of file From 681e072ba90023dda37ff35ee81105d858529f7d Mon Sep 17 00:00:00 2001 From: ailepet Date: Tue, 20 Jan 2026 16:24:12 +0100 Subject: [PATCH 2/3] feat: prepare debates model for 0.31 migration --- .../demo/models/staging/decidim/debates/stg_decidim_debates.sql | 2 ++ 1 file changed, 2 insertions(+) diff --git a/projects/demo/models/staging/decidim/debates/stg_decidim_debates.sql b/projects/demo/models/staging/decidim/debates/stg_decidim_debates.sql index b096557a..a90cf2de 100644 --- a/projects/demo/models/staging/decidim/debates/stg_decidim_debates.sql +++ b/projects/demo/models/staging/decidim/debates/stg_decidim_debates.sql @@ -14,7 +14,9 @@ renamed AS ( decidim_author_id, created_at, closed_at, + {{ get_column_if_exists(source('decidim', 'decidim_debates_debates'), 'deleted_at', 'TIMESTAMP') }}, {{ coalesce_legacy_and_new_columns(source('decidim', 'decidim_proposals_proposals'), 'endorsements_count', 'likes_count') }}, + {{ get_column_if_exists(source('decidim', 'decidim_debates_debates'), 'comments_layout', 'TEXT') }}, 'Decidim::Debates::Debate' as resource_type FROM source ) From 991259d247bfdc3f55955d7069c8f49b901e8c6b Mon Sep 17 00:00:00 2001 From: ailepet Date: Tue, 20 Jan 2026 16:26:49 +0100 Subject: [PATCH 3/3] feat: prepare blogs posts model for 0.31 migration --- .../staging/decidim/blogs_posts/stg_decidim_blogs_posts.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/projects/demo/models/staging/decidim/blogs_posts/stg_decidim_blogs_posts.sql b/projects/demo/models/staging/decidim/blogs_posts/stg_decidim_blogs_posts.sql index 508718c0..06778d52 100644 --- a/projects/demo/models/staging/decidim/blogs_posts/stg_decidim_blogs_posts.sql +++ b/projects/demo/models/staging/decidim/blogs_posts/stg_decidim_blogs_posts.sql @@ -8,6 +8,7 @@ SELECT created_at, decidim_author_id, {{ get_column_if_exists(source('decidim', 'decidim_blogs_posts'), 'published_at', 'TIMESTAMP') }}, + {{ get_column_if_exists(source('decidim', 'decidim_blogs_posts'), 'deleted_at', 'TIMESTAMP') }}, {{ coalesce_legacy_and_new_columns(source('decidim', 'decidim_proposals_proposals'), 'endorsements_count', 'likes_count') }}, 'Decidim::Blogs::Post' AS resource_type FROM {{ source('decidim', 'decidim_blogs_posts') }}