python manage.py flush
removes data from the entire project. I would like to be able to do python manage.py flush agivenapp
How can I do this?
I also needed something to empty only certain apps. I came up with this solution. This worked for mysql. It could be that the code needs to be changed for other databases.
The main idea is not to do the whole 'flush'. Instead I get only what I want, with a grep from 'sqlflush'. You can also put everything in one line. For readability I split it up.
BEGIN="BEGIN; SET FOREIGN_KEY_CHECKS = 0;"
TRUNCATE=`./manage.py sqlflush |egrep " \\\`app1_| \\\`app2_"`
END="SET FOREIGN_KEY_CHECKS = 1; COMMIT;"
echo $BEGIN $TRUNCATE $END | ./manage.py dbshell