Question: `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?

Answer: 
sqlclear management command can be helpful...

```
Usage: ./manage.py sqlclear [options] <appname appname ...>

Prints the DROP TABLE SQL statements for the given app name(s).

```

for the postgresql you can do:

```
./manage.py sqlclear myapp | psql dbname

```

**UPDATE**
for apps with migrations and Django 1.7+:

```
python manage.py migrate <app> zero

```
You can do this with the `migrate` command which takes two positional arguments:

> 
> Updates database schema. Manages both apps with migrations and those without.
> 
> 
> positional arguments:
> 
> 
> **app\_label**  
> 
>  App label of an application to synchronize the state.  
> 
> **migration\_name**  
> 
>  Database state will be brought to the state after that
>  migration. Use the name "zero" to unapply all migrations.
> 
> 
> 

So running a migrate zero followed by a migrate will clear only the data for the given app.

```
$ python manage.py migrate ${APPNAME} zero
$ python manage.py migrate ${APPNAME}    

```