После этого Django by Example tutotrial здесь: http://lightbird.net/dbe/todo_list.html
В руководстве говорится:
"Это изменит макет нашей таблицы, и нам придется попросить Django сбросить и воссоздать таблицы:
manage.py reset todo; manage.py syncdb
"
хотя, когда я бегу manage.py reset todo
, я получаю ошибку:
$ python manage.py reset todo
- Unknown command: 'reset'
Это потому, что я использую sqlite3, а не postgresql?
Может кто подскажет, какая команда для сброса базы данных?
Команда: python manage.py sqlclear todo
возвращает ошибку:
$ python manage.py sqlclear todo
CommandError: App with label todo could not be found.
Are you sure your INSTALLED_APPS setting is correct?
Поэтому я добавил «todo» в свой INSTALLED_APPS в settings.py и python manage.py sqlclear todo
снова запустил , что привело к этой ошибке:
$ python manage.py sqlclear todo
- NameError: name 'admin' is not defined
Ответы:
reset
был заменен наflush
Django 1.5, см.:источник
Похоже, что «промывка» подойдет для некоторых, но не для всех случаев. Мне нужно было не просто сбросить значения в базе данных, но и правильно воссоздать таблицы. Я еще не использую миграции (первые дни), поэтому мне действительно нужно было удалить все таблицы.
Я нашел два способа удалить все таблицы, оба требуют чего-то другого, кроме ядра django.
Если вы используете Heroku, удалите все таблицы с помощью pg: reset:
Если вы можете установить Django Extensions, у него есть способ выполнить полный сброс:
источник
INSTALLED_APPS
вsettings.py
.Подобно ответу LisaD, в Django Extensions есть отличная команда reset_db, которая полностью удаляет все, а не просто усекает таблицы, как это делает «flush».
python ./manage.py reset_db
Простая очистка таблиц не исправляла постоянную ошибку, которая возникала при удалении объектов. Выполнение reset_db устранило проблему.
источник
--router
аргументы, может быть, это необязательно сейчас, пять лет спустя? :)если вы используете Django 2.0 Тогда
будет работать
источник
Если вы хотите очистить всю базу данных, вы можете использовать: python manage.py flush Если вы хотите очистить таблицу базы данных приложения Django, вы можете использовать: python manage.py migrate appname zero
источник
В django 1.11 просто удалите все файлы миграции из
migrations
папки каждого приложения (все файлы, кроме__init__.py
). затемpython3 manage.py makemigrations
.python3 manage.py migrate
.И вуаля, ваша база данных полностью сброшена.
источник
python3 manage.py makemigrations
иpython3 manage.py migrate
мы позаботимся об этом, по крайней мере, в django 2.0Для меня это решило проблему.
источник
Просто продолжение ответа @ LisaD .
Начиная с 2016 года (
Django 1.9
), вам необходимо ввести:Это даст вам новую новую базу данных в Heroku.
источник
Просто удалите базу данных вручную. Убедитесь, что вы сначала создали резервную копию (в моем случае db.sqlite3 - моя база данных)
Запустите эту команду
manage.py migrate
источник
удалил старое содержимое БД,
Не забудьте создать нового суперпользователя:
источник