2011-09-29 21 views
18

Qualcuno può dire se v'è una differenza traDjango filo vs sqlclear & syncdb

>manage.py flush # or reset 

e

>manage.py sqlclear appname | python manage.py dbshell 
>manage.py syncdb 
+0

https://docs.djangoproject.com/en/dev/ref/django-admin/ – cetver

risposta

4

documenti ufficiali per

flush e sqlclear

Flush porta fuori le gocce SQL su th e l'intero db, sqlflush stampa solo l'SQL che flush verrebbe eseguito (di nuovo sull'intero db). sqlclear stampa Gocce SQL per una particolare app o app. Sia flush che sqlflush/dbshell/syncdb installeranno i dispositivi.

+1

eseguendo sqlflush, sembra che flush troncerebbe le tabelle anziché eliminarle. – Bobo

13

filo troncherà (cancellare i dati)

sqlclear scenderà (eliminazione tabella, quindi i dati troppo)

=> se si dispone di modifiche strutturali nel vostro db, si hanno a che fare sqlclear (ma uso migliore south)

Aggiornamento:

South è stato sconsigliato.

Da Django 1.7 in su, le migrazioni sono integrate nel nucleo di Django. Se stai utilizzando una versione precedente, puoi utilizzare South.

+0

https://docs.djangoproject.com/en/1.5/ref/django-admin/#sqlclear-appname-appname dice: "Stampa le istruzioni SQL di DROP TABLE per i nomi delle app specificate.". Mi sembra che in realtà non faccia cadere i tavoli. – peetasan

+0

Leggi "stamperà le istruzioni da eliminare" quindi. Fare riferimento alla domanda OP per vedere come applicare effettivamente le dichiarazioni. – lajarre