如何在 django 中创建不同模式的表?

ran*_*jan 0 python django postgresql django-models django-orm

我在 django 项目中使用 postgresql 数据库。

我的项目中有多个应用程序。

users/
    UserProfile model
myapp/
    CustomModel model
Run Code Online (Sandbox Code Playgroud)

现在我需要在模式UserProfile中创建表public并且CustomModel需要在名为的单独模式中创建表myapp

如何实现这个以及实现这个之后我将来是否需要更改查询或迁移命令中的任何内容?

Nit*_*ish 6

只需使用元信息:

class User(models.Model)
    class Meta:
        db_table = 'schema"."tablename'
Run Code Online (Sandbox Code Playgroud)

我已经使用它有一段时间了,到目前为止没有发现问题。

更多信息:这会将所有数据库查询中的表名替换为db_table. 因此任何查询都将SELECT * FROM "tablename"被转换为SELECT * FROM "geo"."tablename". 这只是一个巧妙的技巧,希望 Django 将来能够原生提供这个选项。