如何在 python 中的查询中 运行 多个 SQL 语句?

How can I run multiple SQL statements in a query in python?

我正在为我的程序实施迁移,我需要一些方法来 运行 查询中的多个语句。

我有一个关于迁移的命令:

MIGRATIONS = {
        "test": ("-- apply", "-- revert", "does nothing")
        }

(第一个元组元素是 "apply" 查询,第二个是 "revert" 查询,第三个是帮助页面的人类可读文本)

我目前正在使用 SQLite,但希望将来可以切换到另一个数据库。因此,我不能使用 Connection.executescript 方法,因为那是 "a nonstandard convenience method" 的 "a nonstandard shortcut"。

既然您要实施迁移,为什么不定义一个根据 well-defined 函数执行迁移的函数:

def executemany(conn, statements: List[str]):
    with conn.cursor() as c:
        for statement in statements:
            c.execute(statement)
        conn.commit()

另一种选择是使用专用的迁移工具。我偏爱 goose.