alembic 怎么取消参数绑定?

2019-04-15 16:55:43 +08:00
 doggg
from alembic import op

op.execute("""
	INSERT INTO test values('{\"min\":10,\"max\":50,\"unitPrice\":150}');
""")

使用 alembic 作为数据库的版本管理,有时候需要在 alembic 中插入一些初始化的配置,如果有 json 数据,比如上面的语句,:10 会被认为是参数绑定(:age ),对 py 生态完全不熟,有什么办法取消参数绑定吗?

1336 次点击
所在节点    Python
2 条回复
claysec
2019-04-15 21:09:52 +08:00
看看 op 里面有没有 json 的转换。
我在这里查找到 mysql 的包里有关于 json 插入数据库的转换功能
https://www.linuxidc.com/Linux/2017-03/141865.htm
```
tsql.format(json=MySQLdb.escape_string(d_json));
```
doggg
2019-04-16 11:22:51 +08:00
@claysec 不是的。上面的 INSERT INTO 语句是从 Navicat 导出生成的。SQL 是没问题的。只是 :10 这样的格式被 alembic 认为是参数绑定。导致 elambic 里面找不到 10 这个变量出错了。不知道怎么取消参数绑定。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/555393

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX