feat(test): action 'exec' — INSERT/UPDATE/DDL через db.execute()

/test sql → db.query() → fetchall() → ломается на CREATE TABLE
/test exec → db.execute() → commit без fetch → для DDL/INSERT/UPDATE
This commit is contained in:
2026-06-14 06:44:39 +04:00
parent 9d01dbae00
commit 4635ed4c57
+13 -1
View File
@@ -38,7 +38,8 @@ def test():
"POST /test status — статус БД (JSON)",
"POST /test createdb — создать БД (если нет)",
"POST /test tables — список таблиц",
"POST /test sql {...} выполнить SQL",
"POST /test exec {...} — INSERT/UPDATE/DDL (без fetch)",
"POST /test sql {...} — SELECT (с fetch)",
],
})
@@ -78,6 +79,17 @@ def test():
except Exception as e:
return jsonify({"error": str(e)}), 500
if action == "exec":
# Выполнить INSERT/UPDATE/DELETE/DDL через db.execute()
# (не делает fetch, поэтому подходит для CREATE TABLE и т.д.)
sql_text = data.get("sql", "")
if not sql_text:
return jsonify({"error": "no sql"}), 400
rowcount, err = db.execute(sql_text)
if err:
return jsonify({"error": err}), 500
return jsonify({"rowcount": rowcount})
if action == "sql":
sql_text = data.get("sql", "")
if not sql_text: