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