django - Django 中使用的 PostgreSQL View (managed=False)不能正确同步

标签 django postgresql django-models

我需要在我的 Django 应用程序(1.6 版)中使用数据库 View (使用 Postgres)。过程如下:

  1. 我创建了一个 View ,然后运行 ​​python manage.py inspectdb 以获得正确的模型表示。
  2. 我已更改模型以反射(reflect)这种情况。

这是用于查看的代码(它确实有效):

SELECT employee.employee_id, employee.firstname, employee.lastname, employee.birthdate, employee.is_active
FROM dblink( blah blah);

这是为 django 模型生成的代码:

class Employee(models.Model):
    employee_id = models.IntegerField(blank=True, null=True)
    firstname = models.TextField(blank=True)
    lastname = models.TextField(blank=True)
    birthdate = models.DateField(blank=True, null=True)
    is_active = models.NullBooleanField()
    class Meta:
        managed = False
        db_table = 'employee'

我尝试过只使用 managed(而不使用 db_table)或同时使用两者。

无论如何,如果我使用 syncdb,我会得到这样的错误:

django.db.utils.ProgrammingError: 引用关系“employee”不是表

好吧,这是真的,但我到底该怎么办呢?

我也玩过迁移,但我也遇到了一些错误:

django.db.utils.ProgrammingError:关系“dblink_test2_employee”不存在

有什么帮助吗?我是否忽略了一些您非常清楚的事情?

最佳答案

在单独的机器上创建一个新的空数据库。 使用从 inspectdb 生成的新 models.py 提取代码到一个临时的新应用程序(使用 startapp 创建) 然后运行 ​​makemigrations。 这将在临时应用程序的迁移目录中创建初始迁移文件。

这是您的初始迁移文件。

将此复制到您的本地计算机。

关于django - Django 中使用的 PostgreSQL View (managed=False)不能正确同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21263276/

相关文章:

python - Django 的受限数据库用户

python - Django 可排序字段源自其他字段

python - 如何使用 Elementary os 在 Django 上创建项目?

python - Unicode解码错误: 'ascii' codec can't decode byte 0xe7 in position 0: ordinal not in range(128)

python - 在 Django 中,如何将模块的 url 配置封装在模块内?

python - Django,从模型获取属性

postgresql - pg_dump 的文件输出在 MacOS 上去哪里?

postgresql - Docker Compose (TOMCAT + POSTGRES) - Spring Boot 应用程序 : connection issue between containers

django - 为什么django不自动更新外键? (obj.relative.id != obj.relative_id)

django - 如何在 Django 中序列化模型实例?