我正在尝试编写一个迁移,它为我的多租户postgres数据库中的每个模式授予只读权限。
每个模式运行一次迁移,因此我想要捕获运行它的模式的名称,然后在我的SQL语句中使用该schema_name为该模式授予权限。
在django中,我可以创建一个名为' RunPython'的迁移操作,并且从该python代码中我可以确定迁移当前正在运行的模式(schema_editor.connection.connection_name)。
我想要做的是将该信息传递给下一个迁移操作,即" RunSQL",以便我运行的SQL可以是:
" GRANT选择SCHEMA中的所有表格{schema_name_from_python_code} to readaccess;"
如果有人能对这个问题有所了解,我们将不胜感激。干杯!
答案 0 :(得分:0)
我能够通过摆脱migrations.runSQL来解决这个问题。我只是有migrations.RunPython。从那个python forward_func中我能够访问DB并在那里写sql(带有必要的字符串插值)
:)