[python] Django에서 db를 재설정하는 방법은 무엇입니까? ‘재설정’명령을 찾을 수 없음 오류가 발생합니다.

예제 tutotrial에 의한이 Django를 따르십시오 : 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'

postgresql이 아닌 sqlite3를 사용하고 있기 때문입니까?

누군가 데이터베이스를 재설정하는 명령이 무엇인지 말해 줄 수 있습니까?

다음 명령 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?

그래서 settings.py의 INSTALLED_APPS에 ‘todo’를 추가하고 python manage.py sqlclear todo다시 실행 하여 다음 오류가 발생했습니다.

$ python manage.py sqlclear todo                                      
- NameError: name 'admin' is not defined



답변

resetflushDjango 1.5 로 대체되었습니다 . 다음을 참조하십시오.

python manage.py help flush


답변

‘플러시’대답이 일부 경우에는 작동하지만 모든 경우에는 작동하지 않는 것 같습니다. 데이터베이스의 값을 플러시 할뿐만 아니라 테이블을 제대로 다시 만들어야했습니다. 아직 (초기) 마이그레이션을 사용하지 않기 때문에 모든 테이블을 삭제해야했습니다.

모든 테이블을 삭제하는 두 가지 방법은 모두 핵심 django 이외의 것이 필요합니다.

Heroku를 사용하는 경우 pg : reset으로 모든 테이블을 삭제합니다.

heroku pg:reset DATABASE_URL
heroku run python manage.py syncdb

Django Extensions를 설치할 수 있다면 완전한 재설정을 수행하는 방법이 있습니다.

python ./manage.py reset_db --router=default


답변

LisaD의 답변과 유사하게 Django Extensions 에는 “flush”처럼 테이블을 자르는 대신 모든 것을 완전히 삭제하는 멋진 reset_db 명령이 있습니다.

python ./manage.py reset_db

단순히 테이블을 플러시한다고해서 객체를 삭제할 때 발생하는 지속적인 오류가 수정되지 않았습니다. reset_db를 수행하면 문제가 해결되었습니다.


답변

Django 2.0을 사용하는 경우

python manage.py flush 

작동 할 것이다


답변

전체 데이터베이스를 정리하려면 다음을 사용할 수 있습니다.
python manage.py flush
Django 앱의 데이터베이스 테이블을 정리하려면 다음을 사용할 수 있습니다.
python manage.py migrate appname zero


답변

django 1.11을 사용하면 migrations각 애플리케이션 의 폴더 에서 모든 마이그레이션 파일을 삭제하기 만하면 됩니다 (를 제외한 모든 파일 __init__.py). 그때

  1. 데이터베이스를 수동으로 삭제합니다.
  2. 수동으로 데이터베이스를 생성합니다.
  3. 을 실행 python3 manage.py makemigrations합니다.
  4. 을 실행 python3 manage.py migrate합니다.

그리고 짜잔, 데이터베이스가 완전히 재설정되었습니다.


답변

나를 위해 이것은 문제를 해결했습니다.

heroku pg:reset DATABASE_URL

heroku run bash
>> Inside heroku bash
cd app_name && rm -rf migrations && cd ..
./manage.py makemigrations app_name
./manage.py migrate