próbuję przywrócić bazy danych w Django przy użyciu:Database kłopoty w Django: nie można przywrócić ze względu na zależności
python manage.py reset app
ale pojawia się następujący błąd:
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.
Jest co mój plik models.py wygląda następująco:
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
mam, że muszę użyć polecenia DROP ... kaskady w SQL, która usuwa i rec reates bazy danych (dane wyjściowe django-admin.py).
Ale jak mogę edytować ten SQL bezpośrednio z models.py?
UPDATE
OK, zorientowali się, jak usunąć tabele ręcznie (baza danych jest PostgreSQL), zauważyli go tutaj dla każdego, kto ma ten sam problem:
python manage.py dbshell
# drop table app_record cascade;
# \q
python manage.py reset app
Would nadal lubię wiedzieć, czy ktoś ma lepszy sposób to zrobić, ale :)
Jakie polecenie wpisujesz, aby to uzyskać? 'python manage.py reset app'? Czy próbujesz zresetować konkretną tabelę? –
Niestety - tak, "aplikacja do resetowania Pythona do zarządzania.py". – Richard
Prostym rozwiązaniem byłoby po prostu ręczne użycie komendy DROP ... CASCADE, a następnie odtworzenie bazy danych ... czy ktoś może mi podać przykład tego, jak to zrobić? – Richard