我正在尝试编写一个迁移,它将只读权限授予我的多租户postgres DB中的每个模式。
迁移针对每个模式运行一次,因此我想要做的是捕获正在运行迁移的模式的名称,然后在我的SQL语句中使用该schema_name授予对该模式的权限。
在django中,我可以创建一个名为'RunPython‘的迁移操作,并且可以从python代码中确定当前针对哪个模式运行迁移(schema_editor.connection.connection_name)。
我想要做的是将该信息传递给下一个迁移操作,即"RunSQL",这样我运行的SQL就可以:
“将架构{schema_name_from_python_code}中所有表的SELECT权限授予readaccess;”
如果有人能在这个问题上提供任何线索,我们将不胜感激。干杯!
发布于 2018-03-22 01:26:14
我可以通过去掉migrations.runSQL来解决这个问题。我只有migrations.RunPython。在python中,我能够访问DB并在其中编写forward_func (使用必要的字符串插值)
:)
https://stackoverflow.com/questions/49389756
复制相似问题