Quoting heimdall column order so it is not mistaken by sqlite
Homelab Main / deploy (push) Successful in 1m22s
Details
Homelab Main / deploy (push) Successful in 1m22s
Details
This commit is contained in:
parent
62ed2c1f6d
commit
ccb8247577
|
|
@ -113,6 +113,9 @@ data:
|
||||||
def columns(conn, table):
|
def columns(conn, table):
|
||||||
return {row[1] for row in conn.execute(f"pragma table_info({table})")}
|
return {row[1] for row in conn.execute(f"pragma table_info({table})")}
|
||||||
|
|
||||||
|
def quote_identifier(name):
|
||||||
|
return '"' + name.replace('"', '""') + '"'
|
||||||
|
|
||||||
def wait_for_items_table(db_path):
|
def wait_for_items_table(db_path):
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
|
|
@ -130,7 +133,7 @@ data:
|
||||||
|
|
||||||
for order, link in enumerate(links):
|
for order, link in enumerate(links):
|
||||||
existing = conn.execute(
|
existing = conn.execute(
|
||||||
"select id from items where title = ?",
|
'select "id" from "items" where "title" = ?',
|
||||||
(link["title"],),
|
(link["title"],),
|
||||||
).fetchone()
|
).fetchone()
|
||||||
values = {
|
values = {
|
||||||
|
|
@ -155,10 +158,10 @@ data:
|
||||||
name for name in values
|
name for name in values
|
||||||
if name in item_columns and name not in ("id", "title", "created_at")
|
if name in item_columns and name not in ("id", "title", "created_at")
|
||||||
]
|
]
|
||||||
assignments = ", ".join(f"{name} = ?" for name in update_columns)
|
assignments = ", ".join(f"{quote_identifier(name)} = ?" for name in update_columns)
|
||||||
params = [values[name] for name in update_columns]
|
params = [values[name] for name in update_columns]
|
||||||
params.append(existing[0])
|
params.append(existing[0])
|
||||||
conn.execute(f"update items set {assignments} where id = ?", params)
|
conn.execute(f'update "items" set {assignments} where "id" = ?', params)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
insert_columns = [
|
insert_columns = [
|
||||||
|
|
@ -166,8 +169,9 @@ data:
|
||||||
if name in item_columns and name != "deleted_at"
|
if name in item_columns and name != "deleted_at"
|
||||||
]
|
]
|
||||||
placeholders = ", ".join("?" for _ in insert_columns)
|
placeholders = ", ".join("?" for _ in insert_columns)
|
||||||
|
quoted_insert_columns = ", ".join(quote_identifier(name) for name in insert_columns)
|
||||||
conn.execute(
|
conn.execute(
|
||||||
f"insert into items ({', '.join(insert_columns)}) values ({placeholders})",
|
f'insert into "items" ({quoted_insert_columns}) values ({placeholders})',
|
||||||
[values[name] for name in insert_columns],
|
[values[name] for name in insert_columns],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue