gpt4 book ai didi

django - 选择测试数据库?

转载 作者:行者123 更新时间:2023-11-29 11:09:53 25 4
gpt4 key购买 nike

我在努力奔跑

./manage.py test

但它告诉我

Got an error creating the test database: permission denied to create database

显然它没有创建数据库的权限,但我在共享服务器上,所以我对此无能为力。我可以通过控制面板创建一个新数据库,但我不认为有任何方法可以让 Django 自动完成。

那么,我不能手动创建测试数据库,而是告诉 Django 每次都刷新它,而不是重新创建整个数据库吗?

最佳答案

我遇到了类似的问题。但我希望 Django 绕过为我的一个实例创建测试数据库(这不是一个镜像)。按照 Mark 的建议,我创建了一个自定义测试运行程序,如下所示

from django.test.simple import DjangoTestSuiteRunner


class ByPassableDBDjangoTestSuiteRunner(DjangoTestSuiteRunner):

def setup_databases(self, **kwargs):
from django.db import connections
old_names = []
mirrors = []

for alias in connections:
connection = connections[alias]
# If the database is a test mirror, redirect its connection
# instead of creating a test database.
if connection.settings_dict['TEST_MIRROR']:
mirrors.append((alias, connection))
mirror_alias = connection.settings_dict['TEST_MIRROR']
connections._connections[alias] = connections[mirror_alias]
elif connection.settings_dict.get('BYPASS_CREATION','no') == 'no':
old_names.append((connection, connection.settings_dict['NAME']))
connection.creation.create_test_db(self.verbosity, autoclobber=not self.interactive)
return old_names, mirrors

然后我在 settings.py 中的一个数据库条目中创建了一个额外的字典条目,'BYPASS_CREATION':'yes',

最后,我配置了一个新的 TestRunner

TEST_RUNNER = 'auth.data.runner.ByPassableDBDjangoTestSuiteRunner'

关于django - 选择测试数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3320900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com