У меня на сервере разработки запущена установка Django. Я недавно использовал python manage.py loaddata 8000models.json
. Теперь все очень медленно. Страницы не загружаются. python manage.py flush
не возвращается. ModelType.objects.count()
не возвращается.
(Или, может быть, они вернутся, если я подожду достаточно долго.)
Что здесь происходит? Действительно ли Джанго не в состоянии обработать такое количество данных? Или есть другая проблема?
Обновление : я наблюдаю эту проблему на PostgreSQL, но не на SQLite с тем же объемом данных. Возможно, мне просто нужно стереть PostgreSQL и перезагрузить данные.
Обновление 2 : Как я могу стереть PostgreSQL и выполнить сброс? python manage.py reset appname
не отвечает.
Обновление 3 : Вот как я пытаюсь стереть PostgreSQL:
#! bin/bash
sudo -u postgres dropdb mydb
sudo -u postgres createdb mydb
sudo -u postgres psql mydb < ~/my-setup/my-init.sql
python ~/path/to/manage.py syncdb
Однако это вызывает следующие ошибки:
dropdb: database removal failed: ERROR: database "mydb" is being accessed by other users
DETAIL: There are 8 other session(s) using the database.
createdb: database creation failed: ERROR: database "mydb" already exists
ERROR: role "myrole" cannot be dropped because some objects depend on it
DETAIL: owner of table mydb.mytable_mytable
# ... more "owner of table", "owner of sequence" statements, etc
Как я могу закрыть эти другие сессии? У меня не работает Apache. Я использовал только один экземпляр сервера разработки Django за раз. Однако, когда он перестал отвечать, я убил его с помощью Control + Z. Может быть, это привело к тому, что он не освободил соединение с базой данных, что вызвало эту проблему? Как я могу обойти это?