2013-08-26 6 views
1

저는 Django South, SQLite 및 테스트에 문제가 있다고 생각합니다. 사우스 테스트가 응용 프로그램에 도입되기 전에 테스트가 필요했습니다. 나는 메모리 내 SQLite를 사용했고 모든 것이 잘 동작했다. 지금 남쪽으로 나는 나의 DB 테이블 중 하나가 이미 존재하고 그것이 실패하다는 것을 말하는 오류를 얻는다. 내가 함께이 세 작품을 만들려고 노력하는 내 바퀴를 회전django는 남쪽을 추가 한 후 테스트를 실행하지 않습니다.

> python manage.py test protocols --settings=bionetbook.settings.test 
Creating test database for alias 'default'... 
/Projects/project/app/venv/lib/python2.7/site-packages/django/db/models/fields/__init__.py:808: RuntimeWarning: DateTimeField received a naive datetime (2013-08-09 00:00:00) while time zone support is active. 
    RuntimeWarning) 
FATAL ERROR - The following SQL query failed: CREATE TABLE "stuff_stuff" ("id" integer NOT NULL PRIMARY KEY, "created" datetime NOT NULL, "modified" datetime NOT NULL, "user_id" integer NOT NULL, "start" datetime NOT NULL, "name" varchar(255) NOT NULL, "data" text NULL, "slug" varchar(255) NULL); 
The error was: table "stuff_stuff" already exists 
! Error found during real run of migration! Aborting. 

! Since you have a database that does not support running 
! schema-altering statements in transactions, we have had 
! to leave it in an interim state between migrations. 

! You *might* be able to recover with: = DROP TABLE "stuff_stuff"; [] 

! The South developers regret this has happened, and would 
! like to gently persuade you to consider a slightly 
! easier-to-deal-with DBMS (one that supports DDL transactions) 
! NOTE: The error which caused the migration to fail is further up. 
Error in migration: stuff:0003_initial 

암 : 여기

오류인가? South은 Test Tools와 SQLite를 좋아하지 않습니까?

답변

2

은 settings.py에 SOUTH_TESTS_MIGRATE = False을 지정하여 테스트 데이터베이스를 작성하십시오. 견적에서 docs :

If this is False, South’s test runner integration will make the test database be created using syncdb, rather than via migrations (the default).