programing

장고에서 db를 리셋하는 방법은?'reset' 명령을 찾을 수 없음 오류가 발생함

css3 2023. 9. 12. 20:10

장고에서 db를 리셋하는 방법은?'reset' 명령을 찾을 수 없음 오류가 발생함

예제 tutotrial에 의한 이 장고를 따라 여기: http://lightbird.net/dbe/todo_list.html

자습서에는 다음과 같이 적혀 있습니다.

"이로 인해 테이블 레이아웃이 변경되므로 장고에게 테이블을 재설정하고 재생성하도록 요청해야 합니다.

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?

' doISTALLED_에 'to do' 했습니다.를 실행하고 을 실행했습니다.py 에서 APPS 실행python manage.py sqlclear todo다음 오류가 발생합니다.

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

reset되었습니다로 되었습니다.flush 1경우: 장고 1.5우오을의오을:.

python manage.py help flush

일부의 경우에는 '플러시'라는 대답이 효과가 있을 것으로 보이지만, 모든 경우는 아닙니다.데이터베이스의 값을 플러시하는 것뿐만 아니라 테이블을 제대로 다시 만들어야 했습니다.아직 (초기) 마이그레이션을 사용하고 있지 않기 때문에 모든 테이블을 삭제해야 했습니다.

제가 찾은 두 가지 방법은 모두 코어 장고가 아닌 다른 것이 필요합니다.

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를 수행하면 문제가 해결되었습니다.

장고 2.0을 사용하는 경우.

python manage.py flush 

통할 것입니다

전체 데이터베이스를 지우려면 다음을 사용할 수 있습니다.

python manage.py flush

장고 앱의 데이터베이스 테이블을 청소하려면 다음을 사용할 수 있습니다.

python manage.py migrate <app-name> zero

1에서는 django 1.11에서 .migrations각 응용프로그램의 폴더(다음을 제외한 모든 파일)__init__.py). 그러면

  1. 데이터베이스를 수동으로 삭제합니다.
  2. 데이터베이스를 수동으로 만듭니다.
  3. 를 합니다.python3 manage.py makemigrations.
  4. 를 합니다.python3 manage.py migrate.

그리고 voilla, 당신의 데이터베이스는 완전히 초기화 됐습니다.

python manage.py flush

이전 DB 내용 삭제,

새로운 수퍼유저를 만드는 것을 잊지 마십시오.

python manage.py createsuperuser

저는 이것으로 문제가 해결되었습니다.

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

이것은 헤로쿠 내의 새로운 데이터베이스를 제공해 줄 것입니다.

  1. 데이터베이스를 수동으로 삭제하기만 하면 됩니다.백업을 먼저 만드는지 확인합니다(내 경우 db.sqlite3이 내 데이터베이스임)

  2. 이 명령 실행manage.py migrate

사용합니다.python manage.py flush장고 4.1에 포스트 레와 함께SQL

언급URL : https://stackoverflow.com/questions/15454008/how-to-reset-db-in-django-i-get-a-command-reset-not-found-error