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..abc222ca --- /dev/null +++ b/projects/demo/macros/coalesce_legacy_and_new_columns.sql @@ -0,0 +1,13 @@ +{% 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 }} + {% 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 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..36f81a0e 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_blogs_posts'), 'endorsements_count', 'likes_count', 'INTEGER') }}, '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..97bb7f4f 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_debates_debates'), 'endorsements_count', 'likes_count', 'INTEGER') }}, '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