sqlalchemy 未对架构执行注释

rho*_*rho 4 python postgresql sqlalchemy

我不确定为什么对模式的评论不能通过 sqlalchemy 工作,\n但在 psql 控制台上工作得很好,

\n\n

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

\n\n
import sqlalchemy\n\nengine = sqlalchemy.create_engine(\'postgresql://postgres@localhost/posgres\')\nengine.execute("CREATE SCHEMA IF NOT EXISTS myschema")\nengine.execute("COMMENT ON SCHEMA myschema IS \'Seemly Random Description\'")\n
Run Code Online (Sandbox Code Playgroud)\n\n

使用 psql 检查

\n\n
postgres=# \\dn+\n                           List of schemas\n   Name   \xe2\x94\x82  Owner   \xe2\x94\x82  Access privileges   \xe2\x94\x82      Description       \n\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n myschema \xe2\x94\x82 postgres \xe2\x94\x82                      \xe2\x94\x82 \n public   \xe2\x94\x82 postgres \xe2\x94\x82 postgres=UC/postgres\xe2\x86\xb5\xe2\x94\x82 standard public schema\n          \xe2\x94\x82          \xe2\x94\x82 =UC/postgres         \xe2\x94\x82 \n(2 rows)\n
Run Code Online (Sandbox Code Playgroud)\n

Ste*_*hry 6

不完全确定原因,但一旦创建连接并运行,它似乎就可以工作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>
Run Code Online (Sandbox Code Playgroud)
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         |
Run Code Online (Sandbox Code Playgroud)