我们使用alembic来迁移数据库,因此当然第二个用户必须运行迁移,但第一个用户无权使用这些表.
当然,我可以运行一些postgres特定的代码来单独更改所有的alembic创建的所有者,但这是不对的.我该怎么解决这个问题?或者这是一个postgres问题?我不知道如何在一个数据库的非现有表上授予user1内容.
解决方法 我知道这是一个老问题,但我遇到了同样的问题,并找到了两个不错的解决方案:1.
快速简便 – 在升级模板(script.py.mako)中添加一般授权命令:我看起来如此:
def upgrade(): ${upgrades if upgrades else "pass"} sql = "grant all on all tables in schema public to simpleuser" op.execute(sql)
2.
如果您对过于通用的grant语句不满意,可以尝试更改alembic中的create_table指令,以在创建表后添加特定的grant命令.我发现这种态度太过于复杂,但如果这是你想要的方向,请阅读有关alembic API here的信息
附:在授予对表的访问权限时,如果有序列,则永远不要忘记它们的序列
总结以上是内存溢出为你收集整理的python – 如何为所有alembic创建一个不同的所有者?全部内容,希望文章能够帮你解决python – 如何为所有alembic创建一个不同的所有者?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)