Skip to content

Commit b5c43b1

Browse files
committed
use jinja2 template
1 parent c189860 commit b5c43b1

File tree

3 files changed

+11
-6
lines changed

3 files changed

+11
-6
lines changed

pum/utils/execute_sql.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import logging
22
from pathlib import Path
33

4+
from jinja2 import Template
5+
46
from psycopg import Connection, Cursor
57
from psycopg.errors import SyntaxError
68

@@ -33,15 +35,17 @@ def execute_sql(
3335
f"Executing SQL from file: {sql}",
3436
)
3537
with open(sql) as file:
36-
sql_code = file.read().split(";")
38+
if parameters:
39+
sql_code = Template(file.read()).render(**parameters)
40+
else:
41+
sql_code = file.read()
42+
sql_code = sql_code.split(";")
3743
else:
3844
sql_code = [sql]
3945

4046
for statement in sql_code:
41-
if parameters:
42-
cursor.execute(statement, parameters)
43-
else:
44-
cursor.execute(statement)
47+
cursor.execute(statement)
48+
4549
except SyntaxError as e:
4650
raise PumSqlException(
4751
f"SQL execution failed for the following code: {sql} {e}"

requirements/base.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
jinja2
12
packaging
23
PyYAML
34
psycopg[binary]

test/data/parameters/changelogs/1.2.3/create_northwind.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ CREATE EXTENSION IF NOT EXISTS postgis;
44

55
CREATE TABLE pum_test_data.some_table (
66
id INT PRIMARY KEY,
7-
geom geometry(LineString, %(SRID)s)
7+
geom geometry(LineString, {{ SRID }})
88
);

0 commit comments

Comments
 (0)