2009-06-02 9 views
3

Windows에서 sqlite를 사용하여 장고에서 응용 프로그램을 개발 중입니다.이 db는 Linux 컴퓨터에서 작동합니까? 그렇지 않다면, 어떻게 리눅스에서 새 데이터베이스의 데이터를 복제합니까 (스크립트 작성은 편도입니다)?sqlite 데이터베이스간에 데이터 전송

답변

8

SQLite는 Windows 및 Linux 플랫폼과 호환됩니다.

The database file format is cross-platform - you can freely copy a database between 32-bit and 64-bit systems or between big-endian and little-endian architectures. These features make SQLite a popular choice as an Application File Format.

출처 : 로버트는 글을 http://sqlite.org/about.html

9

은, SQLite는 파일이 모든 플랫폼에서 작동합니다.

manage.py dumpdata <app1> <app1> > mydbdump.json 

다음은 MySQL이나 PostgreSQL을위한 리눅스 시스템에서 settings.py를 구성 : 당신은 Windows 시스템에 데이터베이스를 저장하려면 다음 (표준) 명령을 실행할 수 있습니다 MySQL의 또는 PostgreSQL을 당신으로 전환하기로 결정하는 경우 데이터베이스를 실행하고 실행하십시오 :

manage.py syncdb 
manage.py loaddata ./mydbdump.json 

나는 successfuly 여러 번에 MySQL에서 SQLite로 전환하려면이 작업을 수행했습니다.

참고로, dumpdata 명령의 목록을 생략하여 설치된 모든 응용 프로그램의 데이터를 덤프 할 수는 있지만 다시로드 할 수는 없습니다. 모든 항목을 포함하는 덤프에는 기본 Django 레코드 콘텐츠 유형 및 사용자 인증은 syncdb 명령으로도 생성됩니다. 따라서 오류가 발생합니다.

IntegrityError: columns app_label, model are not unique

덤프하고로드하려는 특정 앱을 나열하면 제대로 작동합니다.

+3

모든 Django 모델을 덤프하고로드하려고 할 때 "IntegrityError : columns app_label, model are unique"오류가 표시됩니다. 대신 "python manage.py dumpdata auth.User myapp1 myapp2"를 사용할 수 있습니다 (django에서 User 모델 만 덤프). – xhh

+1

우수한 팁, xhh. 내가 이것을 더 일찍 보았 으면 좋겠다. – pojo