0
我在使用Django 1.10.5與django-cookiecutter
項目設置。我有一個非管理模式,看起來像這樣的:Django測試架構模式未找到
# -*- coding: utf-8 -*-
from django.db import models
from django.conf import settings
class MyModel(models.Model):
"""Base account model."""
account_nm = models.CharField(max_length=255, blank=True, null=True,
db_column='customer_nm')
class Meta:
app_label = 'mylabel'
db_table = '"stage"."mytable"'
managed = False if not settings.TESTING else True
的管理設置是爲了建立我的桌子時,我測試,但在任何其他情況。我正在用django-pytest運行我的測試,就像py.test --reuse-db
一樣。我的後端是Redshift,這個非管理型號使用django-redshift-backend
。
如果我只用db_table = 'mytable'
運行測試,我的測試數據庫中public
模式下的表已成功創建。如果我使用架構如上所示運行db_table
的測試,則會收到錯誤消息。
E django.db.utils.ProgrammingError: schema "myschema" does not exist
E LINE 1: CREATE TABLE "myschema"."mytable" (....
我可以在正常情況下用特定的模式應用成功地使用這種模式。爲什麼我在測試時無法在架構中創建表格?
感謝您的回覆。它確實看起來像我在我的測試數據庫中創建了階段模式。我在我的DATABASES設置中指定爲我的測試使用名爲test的數據庫。 – duffn
@duffn測試數據庫可能在測試後被丟棄嗎? – Enix
我不這麼認爲。 - - 重用數據庫可以防止這種情況。 – duffn