I m trying to reset a database in Django, using:
python manage.py reset app
but get the following error:
Error: Error: app couldn t be reset. Possible reasons:
* The database isn t running or isn t configured correctly.
* At least one of the database tables doesn t exist.
* The SQL was invalid.
Hint: Look at the output of django-admin.py sqlreset app . That s the SQL this command wasn t able to run.
The full error: cannot drop table app_record because other objects depend on it
HINT: Use DROP ... CASCADE to drop the dependent objects too.
This is what my models.py file looks like:
class Record(models.Model):
name = models.CharField(max_length=50, db_index=True)
year = models.IntegerField(blank=True, null=True)
def __unicode__(self):
return self.name
class Class(models.Model):
record = models.ForeignKey(Record)
def __unicode__(self):
return self.id
I get that I need to use the DROP... CASCADE command in the SQL that deletes and recreates the database (the output of django-admin.py).
But how can I edit that SQL directly from models.py?
UPDATE
OK, I figured out how to delete tables manually (the database is postgres), have noted it here for anyone with the same problem:
python manage.py dbshell
# drop table app_record cascade;
# q
python manage.py reset app
Would still like to know if anyone has a better way to do it, though :)