Skip to content

Commit 82828a6

Browse files
committed
refactor: templatize db name in migration
Also refactors migration to use `create or replace` instead of dropping and recreating tables and dictionaries.
1 parent 9ee5fe5 commit 82828a6

File tree

1 file changed

+8
-30
lines changed

1 file changed

+8
-30
lines changed

tutoraspects/templates/aspects/apps/aspects/migrations/alembic/versions/0014_add_course_names_fields.py

+8-30
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,7 @@
1313
def upgrade():
1414
op.execute(
1515
"""
16-
DROP TABLE IF EXISTS {{ ASPECTS_EVENT_SINK_DATABASE }}.course_names;
17-
"""
18-
)
19-
op.execute(
20-
"""
21-
DROP DICTIONARY IF EXISTS {{ ASPECTS_EVENT_SINK_DATABASE }}.course_names_dict;
22-
"""
23-
)
24-
25-
op.execute(
26-
"""
27-
CREATE DICTIONARY {{ ASPECTS_EVENT_SINK_DATABASE }}.course_names_dict (
16+
CREATE OR REPLACE DICTIONARY {{ ASPECTS_EVENT_SINK_DATABASE }}.course_names_dict (
2817
course_key String,
2918
course_name String,
3019
course_run String,
@@ -34,18 +23,18 @@ def upgrade():
3423
SOURCE(CLICKHOUSE(
3524
user '{{ CLICKHOUSE_ADMIN_USER }}'
3625
password '{{ CLICKHOUSE_ADMIN_PASSWORD }}'
37-
db 'event_sink'
26+
db '{{ ASPECTS_EVENT_SINK_DATABASE }}'
3827
query 'with most_recent_overviews as (
3928
select org, course_key, max(modified) as last_modified
40-
from event_sink.course_overviews
29+
from {{ ASPECTS_EVENT_SINK_DATABASE }}.course_overviews
4130
group by org, course_key
4231
)
4332
select
4433
course_key,
4534
display_name,
4635
splitByString(\\'+\\', course_key)[-1] as course_run,
4736
org
48-
from event_sink.course_overviews co
37+
from {{ ASPECTS_EVENT_SINK_DATABASE }}.course_overviews co
4938
inner join most_recent_overviews mro on
5039
co.org = mro.org and
5140
co.course_key = mro.course_key and
@@ -72,35 +61,24 @@ def upgrade():
7261
def downgrade():
7362
op.execute(
7463
"""
75-
DROP TABLE IF EXISTS {{ ASPECTS_EVENT_SINK_DATABASE }}.course_names;
76-
"""
77-
)
78-
op.execute(
79-
"""
80-
DROP DICTIONARY IF EXISTS {{ ASPECTS_EVENT_SINK_DATABASE }}.course_names_dict;
81-
"""
82-
)
83-
84-
op.execute(
85-
"""
86-
CREATE DICTIONARY {{ ASPECTS_EVENT_SINK_DATABASE }}.course_names_dict (
64+
CREATE OR REPLACE DICTIONARY {{ ASPECTS_EVENT_SINK_DATABASE }}.course_names_dict (
8765
course_key String,
8866
course_name String
8967
)
9068
PRIMARY KEY course_key
9169
SOURCE(CLICKHOUSE(
9270
user '{{ CLICKHOUSE_ADMIN_USER }}'
9371
password '{{ CLICKHOUSE_ADMIN_PASSWORD }}'
94-
db 'event_sink'
72+
db '{{ ASPECTS_EVENT_SINK_DATABASE }}'
9573
query 'with most_recent_overviews as (
9674
select org, course_key, max(modified) as last_modified
97-
from event_sink.course_overviews
75+
from {{ ASPECTS_EVENT_SINK_DATABASE }}.course_overviews
9876
group by org, course_key
9977
)
10078
select
10179
course_key,
10280
display_name
103-
from event_sink.course_overviews co
81+
from {{ ASPECTS_EVENT_SINK_DATABASE }}.course_overviews co
10482
inner join most_recent_overviews mro on
10583
co.org = mro.org and
10684
co.course_key = mro.course_key and

0 commit comments

Comments
 (0)