Sqlite Openshift python manage.py测试不支持';跑不动

Sqlite Openshift python manage.py测试不支持';跑不动,sqlite,python-3.x,unit-testing,openshift,django-1.8,Sqlite,Python 3.x,Unit Testing,Openshift,Django 1.8,我遵循django文档中由7部分组成的教程。 Django项目是使用Openshift quickstart创建的 为什么我需要打字 python manage.py makemigrations python manage.py migrate 在每个单元测试用例执行之前 python manage.py test 每当我向应用程序添加测试用例并将所有更改推送到openshift时,我都需要使用SSH连接重新键入迁移到openshift 在我可以运行测试之前 否则,

我遵循django文档中由7部分组成的教程。 Django项目是使用Openshift quickstart创建的

为什么我需要打字

    python manage.py makemigrations
    python manage.py migrate
在每个单元测试用例执行之前

    python manage.py test
每当我向应用程序添加测试用例并将所有更改推送到openshift时,我都需要使用SSH连接重新键入迁移到openshift 在我可以运行测试之前 否则,我会看到“没有这样的表myapp_问题”错误消息

使用python manage.py dbshell,我看到数据库中有了适当的表,因为我已经完成了所有迁移

文件指出, 为什么openshift要求在测试之前进行类型迁移,而不进行任何模型更改,以及新数据库会发生什么情况

我从中实例化每个测试用例

    from django.test import TestCase
这个导入应该提供开箱即用的新数据库和空表

我应该在openshift hooks中添加一些内容还是修改settings.py

我可以运行测试,但我不明白为什么不能直接键入

      manage.py test

并探索结果

每次使用git推动openshift都会创建新的运行时,而无需django数据库迁移和模式。数据库的所有历史记录都保存在可以使用ssh访问的子目录中

django测试需要迁移历史来为测试目的重新创建数据库,即使用内存数据库

只有通过运行迁移,才能创建用于测试的迁移架构


如果我错了,请纠正我

如果您使用的是文件系统数据库(如SQLite),而没有将其粘贴到指定的持久数据目录中,那么是的,您每次都需要创建它。您可以使用一个环境变量来指定目录的位置。是的,我忘了提到我使用的是SQLite dabase,因为构建它需要大量的处理时间。谢谢你的澄清。有种感觉是我做错了什么