在Django Postgresql中为不同项目使用相同的数据库表

时间:2020-09-25 16:13:26

标签: django postgresql django-models

我是使用Django框架的新手。我想对2个不同的项目使用相同的数据库(PostgreSQL)表。我能够从两个不同的项目访问相同的数据库。但是如何访问表?

首先,我在project1中有模型

class employees(models.Model): 
    employeeID = models.IntegerFiled()
    employeeName = models.CharField(max_length=100)

这将在数据库中创建一个project1_employees表。我想在project2中访问此表。如果我在project2中具有相同的模型并进行迁移,则它将在相同的数据库中创建一个新表project2_employees。这是两个完全不同的项目。

2 个答案:

答案 0 :(得分:1)

在第二个项目模型managed = False中使用class Meta:。这将防止迁移代码创建表。有关更多信息,请参见:

https://docs.djangoproject.com/en/3.0/ref/models/options/#managed

您需要考虑的是,您是否认为项目会足够分散,最终将需要单独的数据库/表。

答案 1 :(得分:1)

对于第二个项目,请按以下方式更改模型的元数据:

NA->101

然后进行假迁移:

class employees(models.Model): 
    employeeID = models.IntegerFiled()
    employeeName = models.CharField(max_length=100)
    class Meta:
        managed = False
        db_table = 'project1_employees'