Я нашел способ, но, поскольку я также испортил hdparm (с -F или -W 0/1), я не знаю, будет ли он работать для вас.Я сделал перезагрузку и еще раз, чтобы убедиться, что думал.Кроме того, этот тест не имеет SpatiaLite, но, как вы сказали, это, вероятно, не имеет значения.
В любом случае, нам нужно 2 экрана для его воспроизведения, screen0 запускает тесты и screen1 - оболочка sh для работы с волей Процесс screen0 приостановлен.
Запустить тест (screen0):
>>> ./manage.py test testapp
Creating test database for alias 'default'...
Destroying old test database 'default'...
Type 'yes' if you would like to try deleting the test database 'db_test.sqlite', or 'no' to cancel: yes
--Return--
None
> /home/jpic/testproject/testapp/tests.py(16)testSomething()
14
15 def testSomething(self):
---> 16 import ipdb; ipdb.set_trace()
Проверьте размер созданного файла тестовой базы данных , (screen1):
<<< 18:00.39 Mon Feb 20 2012!~/testproject
<<< jpic@germaine!10004 env
>>> ls -l db_test.sqlite
-rw-r--r-- 1 jpic jpic 49152 2012-02-20 18:00 db_test.sqlite
Запустите команду PRAGMA SYNCHRONOUS sql из python (screen0):
ipdb> from django.db import connection; cursor = connection.cursor()
ipdb> cursor.execute("PRAGMA SYNCHRONOUS")
<django.db.backends.sqlite3.base.SQLiteCursorWrapper object at 0x294f348>
ipdb>
Проверьте, увеличился ли размер файла базы данных (screen1):
<<< 18:00.42 Mon Feb 20 2012!~/testproject
<<< jpic@germaine!10005 env
>>> ls -l db_test.sqlite
-rw-r--r-- 1 jpic jpic 272384 2012-02-20 18:00 db_test.sqlite
Данные записаны в файл.
Это не имеет особого смысла для меня, потому что, очевидно, PRAGMA SYNCHRONOUS
один должен просто запросить значение (в моем случае: 2 / FULL).Но на практике это записывает на диск.Обратите внимание, что если у вас нет 2 (FULL), вы должны установить его на 2: PRAGMA SYNCHRONOUS 2
.
Теперь я не могу сказать что было написано (было написано полностью?) потому что я не могу заполучить тестовую базу данных: если я запускаю sqlite db_test.sqlite
на screen1, чтобы получить клиента в тестовой базе данных: я не могу запустить ни одну команду (ни select, ни .dump), потому чтоMsgstr "Ошибка SQL: база данных заблокирована".Но, я думаю, это твоя проблема сейчас B)