Django flush vs sqlclear & syncdb

31,312

Solution 1

flush will truncate (delete data)

sqlclear will drop (delete table, thus data too)

=> if you have structural modifications in your db, you have to do sqlclear (but better use south)

Update:

South has been deprecated.

From Django 1.7 upwards, migrations are built into the core of Django. If you are running a previous version, you can use South.

Solution 2

Official docs for

flush and sqlclear

Flush carries out the SQL Drops on the entire db, sqlflush only prints out the SQL that flush would actual run (again on the entire db). sqlclear prints out SQL Drops for a particular app or apps. Both flush and sqlflush/dbshell/syncdb will install fixtures.

Share:
31,312
Jibin
Author by

Jibin

Updated on June 20, 2020

Comments

  • Jibin
    Jibin about 4 years

    Can anyone tell if there is a difference between

    >manage.py flush  # or reset
    

    and

    >manage.py sqlclear appname | python manage.py dbshell
    >manage.py syncdb 
    
  • Bobo
    Bobo over 11 years
    by running sqlflush, looks like flush would only truncate tables rather than drop them.
  • peetasan
    peetasan about 9 years
    docs.djangoproject.com/en/1.5/ref/django-admin/… says: "Prints the DROP TABLE SQL statements for the given app name(s).". Seems to me it doesn't actually drop the tables.
  • lajarre
    lajarre about 9 years
    Read "will print statements to drop" then. Refer to the OP question to see how to actually apply the statements.