sqlalchemy不执行对模式的评论[英] sqlalchemy not executing Comment on schema

本文是小编为大家收集整理的关于sqlalchemy不执行对模式的评论的处理方法,想解了sqlalchemy不执行对模式的评论的问题怎么解决?sqlalchemy不执行对模式的评论问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我不确定为什么无法通过 sqlalchemy 对架构进行评论,但在 psql 控制台上完美运行,

尝试了各种设置仍然没有成功,架构已创建但无法添加描述.

import sqlalchemy

engine = sqlalchemy.create_engine('postgresql://postgres@localhost/posgres')
engine.execute("CREATE SCHEMA IF NOT EXISTS myschema")
engine.execute("COMMENT ON SCHEMA myschema IS 'Seemly Random Description'")

用 psql 检查

postgres=# \dn+
                           List of schemas
   Name   │  Owner   │  Access privileges   │      Description       
──────────┼──────────┼──────────────────────┼────────────────────────
 myschema │ postgres │                      │ 
 public   │ postgres │ postgres=UC/postgres↵│ standard public schema
          │          │ =UC/postgres         │ 
(2 rows)

推荐答案

不完全确定原因,但是一旦创建连接并运行 COMMIT,它似乎就可以工作:

In [8]: conn = engine.connect()                                                                                                                                                                              

In [9]: conn.execute("COMMENT ON SCHEMA myschema IS 'Seemly Random Description'")                                                                                                                            
Out[9]: <sqlalchemy.engine.result.ResultProxy at 0x7fd109991cd0>

In [10]: conn.execute("COMMIT;")                                                                                                                                                                             
Out[10]: <sqlalchemy.engine.result.ResultProxy at 0x7fd0ff3b7d10>
postgres=# \dn+
                            List of schemas
   Name   |  Owner   |  Access privileges   |        Description        
----------+----------+----------------------+---------------------------
 myschema | postgres |                      | Seemly Random Description
 public   | postgres | postgres=UC/postgres+| standard public schema
          |          | =UC/postgres         |

本文地址:https://www.itbaoku.cn/post/1764043.html