【发布时间】:2017-02-23 23:23:09
【问题描述】:
我在 django-cookiecutter 的项目设置中使用 Django 1.10.5。我有一个看起来像这样的非托管模型:
# -*- 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 一样。我的后端是 django-redshift-backend 这个非托管模型的 Redshift。
如果我只使用db_table = 'mytable' 运行测试,我的表将成功地在我的测试数据库的public 模式中创建。如果我使用db_table 运行测试,如上图所示,我会收到一个错误。
E django.db.utils.ProgrammingError: schema "myschema" does not exist
E LINE 1: CREATE TABLE "myschema"."mytable" (....
在正常情况下,我可以在具有特定模式的应用程序中成功使用此模型。为什么我在测试时无法在我的架构中创建表?
【问题讨论】:
标签: python django amazon-redshift