Seguindo este tutotrial Django por exemplo aqui: http://lightbird.net/dbe/todo_list.html
O tutorial diz:
"Isso muda o layout da nossa mesa e teremos que pedir ao Django para redefinir e recriar as tabelas:
manage.py reset todo; manage.py syncdb
"
embora, quando eu corro manage.py reset todo
, recebo o erro:
$ python manage.py reset todo
- Unknown command: 'reset'
É porque estou usando sqlite3 e não postgresql?
Alguém pode me dizer qual é o comando para redefinir o banco de dados?
O comando: python manage.py sqlclear todo
retorna o erro:
$ python manage.py sqlclear todo
CommandError: App with label todo could not be found.
Are you sure your INSTALLED_APPS setting is correct?
Então, adicionei 'todo' ao meu INSTALLED_APPS em settings.py e executei python manage.py sqlclear todo
novamente, resultando neste erro:
$ python manage.py sqlclear todo
- NameError: name 'admin' is not defined
Respostas:
reset
foi substituído porflush
Django 1.5, consulte:fonte
Parece que a resposta 'liberar' funcionará para alguns casos, mas não para todos. Eu precisava não apenas liberar os valores do banco de dados, mas recriar as tabelas adequadamente. Não estou usando migrações ainda (primeiros dias), então realmente precisava descartar todas as tabelas.
Duas maneiras que descobri de eliminar todas as tabelas, ambas requerem algo diferente do core django.
Se você estiver no Heroku, elimine todas as tabelas com pg: reset:
Se você pode instalar extensões Django, há uma maneira de fazer uma redefinição completa:
fonte
INSTALLED_APPS
emsettings.py
.Semelhante à resposta do LisaD, as extensões do Django têm um ótimo comando reset_db que elimina totalmente tudo, ao invés de apenas truncar as tabelas como o "flush" faz.
python ./manage.py reset_db
O simples esvaziamento das tabelas não corrigia um erro persistente que ocorria quando eu estava excluindo objetos. Fazer um reset_db corrigiu o problema.
fonte
--router
argumentar, talvez isso seja opcional agora, cinco anos depois? :)se você estiver usando Django 2.0, então
vai funcionar
fonte
Se você quiser limpar todo o banco de dados, você pode usar: python manage.py flush Se você quiser limpar a tabela do banco de dados de um aplicativo Django, você pode usar: python manage.py migrate appname zero
fonte
Com o django 1.11, simplesmente exclua todos os arquivos de migração da
migrations
pasta de cada aplicativo (todos os arquivos exceto__init__.py
). Entãopython3 manage.py makemigrations
.python3 manage.py migrate
.E voilla, seu banco de dados foi completamente reiniciado.
fonte
python3 manage.py makemigrations
epython3 manage.py migrate
cuidará disso, pelo menos no django 2.0Para mim, isso resolveu o problema.
fonte
Apenas um acompanhamento à resposta de @ LisaD .
A partir de 2016 (
Django 1.9
), você precisa digitar:Isso lhe dará um novo banco de dados dentro do Heroku.
fonte
Apenas exclua manualmente seu banco de dados. Certifique-se de criar o backup primeiro (no meu caso, db.sqlite3 é meu banco de dados)
Execute este comando
manage.py migrate
fonte
excluiu conteúdos antigos de banco de dados,
Não se esqueça de criar um novo superusuário:
fonte