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
reset
flush
Django 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 --router=default
단순히 테이블을 플러시한다고해서 객체를 삭제할 때 발생하는 지속적인 오류가 수정되지 않았습니다. reset_db를 수행하면 문제가 해결되었습니다.
Django 2.0을 사용하는 경우
python manage.py flush
작동 할 것이다
django 1.11을 사용하면 migrations
각 애플리케이션 의 폴더 에서 모든 마이그레이션 파일을 삭제하기 만하면 됩니다 (를 제외한 모든 파일 __init__.py
). 그때
- 데이터베이스를 수동으로 삭제합니다.
- 수동으로 데이터베이스를 만듭니다.
- 을 실행
python3 manage.py makemigrations
합니다. - 을 실행
python3 manage.py migrate
합니다.
그리고 짜잔, 데이터베이스가 완전히 재설정되었습니다.
전체 데이터베이스를 정리하려면 다음을 사용할 수 있습니다. python manage.py flush Django 앱의 데이터베이스 테이블을 정리하려면 다음을 사용할 수 있습니다. python manage.py migrate appname zero
나를 위해 이것은 문제를 해결했습니다.
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
@LisaD의 답변에 대한 후속 조치 입니다.
2016 년 ( Django 1.9
)부터 다음을 입력해야합니다.
heroku pg:reset DATABASE_URL
heroku run python manage.py makemigrations
heroku run python manage.py migrate
This will give you a fresh new database within Heroku.
Just manually delete you database. Ensure you create backup first (in my case db.sqlite3 is my database)
Run this command
manage.py migrate
python manage.py flush
deleted old db contents,
Don't forget to create new superuser:
python manage.py createsuperuser
'Nice programing' 카테고리의 다른 글
Windows에서 npm을 어떻게 업데이트합니까? (0) | 2020.10.06 |
---|---|
특정 ID 값에 따른 MySQL 순서 (0) | 2020.10.06 |
뷰 컨트롤러에서 프로그래밍 방식으로 선을 어떻게 그리나요? (0) | 2020.10.06 |
Xcode 6에서 빌드 된 이전 프로젝트에서 XCTest / XCTest.h를 찾을 수 없습니다. (0) | 2020.10.06 |
사용자가 BottomSheet에서 끌기 비활성화 (0) | 2020.10.06 |