Я пытаюсь сбросить базу данных в Django, используя:
python manage.py reset app
но получите следующую ошибку:
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.
Вот как выглядит мой файл models.py:
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
Я понял, что мне нужно использовать команду DROP ... CASCADE в SQL, которая удаляет и воссоздает базу данных (вывод django-admin.py).
Но как я могу редактировать этот SQL напрямую из models.py?
UPDATE
ОК, я разобрался, как удалять таблицы вручную (база данных postgres), заметил это здесь для тех, у кого такая же проблема:
python manage.py dbshell
# drop table app_record cascade;
# \q
python manage.py reset app
Хотелось бы узнать, есть ли у кого-нибудь лучший способ сделать это, хотя бы:)