首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在内存数据库中使用sqlite运行django

在内存数据库中使用sqlite运行django
EN

Stack Overflow用户
提问于 2014-11-27 23:36:06
回答 2查看 5.5K关注 0票数 7

我正在使用Robot Framework进行验收测试。

要启动django服务器,我从RobotFramework运行python manage.py runserver命令。在那之后,我会给python manage.py migrate打电话。但是测试很慢,因为没有使用内存中的数据库。

我尝试创建一个名为testing的新设置文件,并使用以下配置:

代码语言:javascript
代码运行次数:0
运行
复制
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': ':memory:',
    }
}

并在运行时使用该配置设置环境变量DJANGO_SETTINGS_MODULE。

我先运行迁移,然后运行runserver,但是数据库不存在。我不知道为什么。如果我使用物理数据库,它可以工作。

我试图检查Django TestCase是如何运行和创建数据库的,但我找不到它。

EN

回答 2

Stack Overflow用户

发布于 2020-05-19 13:59:14

在运行测试用例之前,我尝试通过手动调用execute_from_command_line()来模拟make migrate

因此,我选择的命令是:(如果不使用诗歌,则删除poetry run )。

代码语言:javascript
代码运行次数:0
运行
复制
poetry run ./manage.py test --settings=myproject.settings_test

我将此命令放入GNUMakefile以允许我使用make test

然后在myproject/settings_test.py内部

代码语言:javascript
代码运行次数:0
运行
复制
from .settings import *

ALLOWED_HOSTS = [ '127.0.0.1', ]
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': ':memory:',
    }
}

from django.core.management import execute_from_command_line
execute_from_command_line(['./manage.py', 'migrate'])
票数 1
EN

Stack Overflow用户

发布于 2015-04-11 17:53:24

您可以在测试开始时使用django.db.connection.creation.create_test_db函数documented here,然后在完成测试后调用django.db.connection.creation.destroy_test_db

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27174226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档