2012-07-09 3 views
1

삽입 후 sqlite에 많은 레코드를 삭제, sqlite DB 파일의 크기가 성장하고, 장고 진공 테이블을 사용하는 방법은 무엇입니까?django와 sqlite 진공

vacuum [my table]; 
commit; 
:

내가 SQL 다음 실행 sqlite database browser를 사용

  • 또는 수동으로 업데이트 진공
  • 에 자신의 장고 명령을 쓰기 sqlite가 자동 진공하자

    • 일부 설정

      잘 작동하며 프로그램 방식으로하고 싶습니다. 다음과 같이

    답변

    3

    당신은 원시 SQL을 실행할 수 있습니다

    from django.db import connection, transaction 
    cursor = connection.cursor() 
    
    # Data modifying operation - commit required 
    cursor.execute("vacuum my_table") 
    transaction.commit_unless_managed() 
    

    하지만,이 http://www.sqlite.org/lang_vacuum.html/pragma.html#pragma_auto_vacuum

    어쩌면 우리가 vacumm 자동으로 설정할 수 있습니다 가지 흥미로웠다, 그러나 분열을 악화시킬 것 같습니다. 나는 메타 데이터 장고 모델에서 일부 설정을 생각했지만 문제가 해결되었다하더라도

    cursor.execute("PRAGMA auto_vacuum=FULL") 
    

    http://www.sqlite.org/pragma.html#pragma_auto_vacuum

    +0

    많은 덕분에, 장고와 – pinkdawn

    +0

    는 transaction.commit'''필요 1.8.3()''' –