我需要在我的django应用程序(版本1.6)中使用数据库视图(使用Postgres)。流程如下:
python manage.py inspectdb
以获得正确的模型表示。以下是视图代码(确实有效):
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: referenced relation "employee" is not a table
好的,这是真的,但我该怎么办呢?
我也玩过迁移,但我也遇到了一些错误:
django.db.utils.ProgrammingError: relation "dblink_test2_employee" does not exist
任何帮助表示赞赏?我是否忽视了一些非常清楚的事情?
答案 0 :(得分:0)
在另一台机器上创建一个新的空数据库。 使用来自inspectdb的新models.py在临时新应用程序中创建代码(使用 startapp 创建) 然后运行makemigrations。 这将在临时应用程序的迁移目录中创建初始迁移文件。
这是您的初始迁移文件。
将其复制到本地计算机。