2011-11-11 2 views

답변

3

장고를 사용할 필요가 없습니다. 내보낼 테이블 구조가 (이 가능성이 높습니다), 다음은 텍스트 출력으로 생성하는 템플릿을 작성하는 쉬운 것입니다 일정한 경우

mysqldump -u USERNAME -pPASSWORD DATABASE_NAME > DATABASE_FILE.sql 
+0

이 작동하지만 사용자 지정 덤프를 즉시 생성해야합니다. 직접적으로 서브 프로세스 모듈을 사용하여 장고 뷰에서이 명령을 실행하는 데 문제가 있습니까? – davidscolgan

+0

두 개의 요청이 같은 파일에 동시에 쓰려고하지 않도록 적절한 잠금을 설정해야합니다. 또한 [options for mysqldump] (http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html)를 보아라. --single-transaction 옵션과 함께 사용할 수도있다. –

0

: MySQL은 당신을 위해 그것을 할 수있는 명령이 포함 . Django 템플릿 (HTML에 종속적이지 않음)이나 단순히 문자열 보간을 사용할 수 있습니다. 이 같은

뭔가 :

def dump(w, qs): 
    for r in qs: 
     w.write ("insert into tablename (fieldA, fieldB, fieldC) values ('%s', '%s', %d);\n" % (
      quote(r.fieldA), quote(r.fieldB), int(r.fieldC))) 

fieldAfieldB이 문자열 가정 fieldC는 정수이고, quote()는 MySQL의 안전한 탈출 기능입니다. w 매개 변수는 파일과 유사한 객체 (Django HttpResponse 객체 일 수 있음)이며 qs는 원하는 데이터가있는 queryset입니다.

관련 문제