Django如何在特定模式中创建模型表

sczxawaw  于 2023-03-24  发布在  Go
关注(0)|答案(2)|浏览(103)

这就是问题所在假设我的数据库中有两个模式:方案1方案2
我有一个简单的用户表和一个简单的汽车表

class User(models.Model)
    class Meta:
        db_table = 'user'

class Car(models.Model)
    class Meta:
        db_table = 'car'

我希望user表在schema1
car表将在schema2
你们会怎么做?
我看到一篇文章说我需要指定int he db_table = 'schema_name”.“table_name'但这不起作用。

xqk2d5yq

xqk2d5yq1#

我假设你的建议是这样的:

class User(models.Model):
    name = models.CharField(max_length=200)
    age = models.PositiveBigIntegerField()
    class Meta: 
        db_table = 'user'

class Car(models.Model):
    name = models.CharField(max_length=200)
    model = models.PositiveBigIntegerField()
    owner = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
    class Meta: 
        db_table = 'car'

在这里,我们使用Car模型中的owner来创建与User模型的关系。

rpppsulh

rpppsulh2#

如下面的链接所述,您需要在db_table中指定schema name和table name,因此User的 meta类应该如下所示(使用默认schema):

class Meta: 
    db_table = 'public"."user'

对于Car(假设模式名为“new”):

class Meta: 
    db_table = 'new"."car'

别忘了迁移它。
How to create tables in a different schema in django?

相关问题