diff --git a/.env.sample b/.env.sample new file mode 100644 index 00000000..964052e6 --- /dev/null +++ b/.env.sample @@ -0,0 +1,8 @@ +SF_ACCOUNT=vna27887.us-east-1 +SF_USERNAME= +SF_PASSWORD= +SF_REGION=us-east-1 +SF_DATABASE=ETHEREUM_COMMUNITY_DEV +SF_WAREHOUSE=FLIPSIDE_COMMUNITY_CURATOR +SF_ROLE=FLIPSIDE_COMMUNITY_CURATOR +SF_SCHEMA=SILVER \ No newline at end of file diff --git a/.gitignore b/.gitignore index fec6df8b..d2045f47 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ logs/ .history/ **/.DS_Store .vscode/ +.env \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..fe016e26 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM fishtownanalytics/dbt:1.0.0 +WORKDIR /support +RUN mkdir /root/.dbt +COPY profiles.yml /root/.dbt +RUN mkdir /root/ethereum +WORKDIR /ethereum +COPY . . +EXPOSE 8080 +ENTRYPOINT [ "bash"] \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..2a695b89 --- /dev/null +++ b/Makefile @@ -0,0 +1,6 @@ +SHELL := /bin/bash + +dbt-console: + docker-compose run dbt_console + +.PHONY: dbt-console \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..64145b43 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,9 @@ +version: "3.4" + +services: + dbt_console: + build: . + volumes: + - .:/ethereum + env_file: + - .env diff --git a/macros/create_udfs.sql b/macros/create_udfs.sql index eeb4a147..a51e6ed9 100644 --- a/macros/create_udfs.sql +++ b/macros/create_udfs.sql @@ -1,13 +1,18 @@ {% macro create_udfs() %} {% set sql %} CREATE schema if NOT EXISTS silver; -{{ create_js_hex_to_int() }}; -{{ create_udf_load_nft_metadata() }}; -{{ create_udf_hex_to_int( + {{ create_js_hex_to_int() }}; + {{ create_udf_hex_to_int( schema = "public" ) }} - {{ create_udf_get_token_balances() }} - {% endset %} {% do run_query(sql) %} + + {% if target.database != "ETHEREUM_COMMUNITY_DEV" %} + {% set sql %} + {{ create_udf_load_nft_metadata() }}; + {{ create_udf_get_token_balances() }} + {% endset %} + {% do run_query(sql) %} + {% endif %} {% endmacro %} diff --git a/macros/run_sp_create_prod_community_clone.sql b/macros/run_sp_create_prod_community_clone.sql new file mode 100644 index 00000000..faa8e9ee --- /dev/null +++ b/macros/run_sp_create_prod_community_clone.sql @@ -0,0 +1,7 @@ +{% macro run_sp_create_prod_community_clone() %} +{% set clone_query %} +call ethereum._internal.create_prod_clone('ethereum', 'ethereum_community_dev', 'flipside_community_curator'); +{% endset %} + +{% do run_query(clone_query) %} +{% endmacro %} \ No newline at end of file diff --git a/profiles.yml b/profiles.yml new file mode 100644 index 00000000..2ec3111f --- /dev/null +++ b/profiles.yml @@ -0,0 +1,19 @@ +ethereum: + target: dev + outputs: + dev: + type: snowflake + account: "{{ env_var('SF_ACCOUNT') }}" + # User/password auth + user: "{{ env_var('SF_USERNAME') }}" + password: "{{ env_var('SF_PASSWORD') }}" + role: "{{ env_var('SF_ROLE') }}" + schema: "{{ env_var('SF_SCHEMA') }}" + region: "{{ env_var('SF_REGION') }}" + database: "{{ env_var('SF_DATABASE') }}" + warehouse: "{{ env_var('SF_WAREHOUSE') }}" + threads: 4 + client_session_keep_alive: False + query_tag: ethereum_curator + config: + send_anonymous_usage_stats: False \ No newline at end of file