따라서
데이터 모델
, 마이그레이션 및 데이터베이스 자체를 처음 살펴볼 때 혼란스러워하기가 쉽습니다.
그래서 저는 이것을 좀 더 자세히 살펴보고 싶습니다.
그래서 메이크 마이그레이션은
models.py 파일을 읽고 다음
마이그레이션이라고 무엇을 만듭니다.
그리고 중요한 것은 이것이
settings.py 응용 프로그램 목록에 의해 안내된다는 것입니다.
그래서 새로운 것을 만들고 새로운 응용 프로그램을 만들고
모델 파일을 편집하고
makemigrations를 실행하려고하면
아무 것도 보이지 않으면 어떻게 했습니까?
글쎄, 당신은 당신의 settings.py 편집 했습니까?
settings.py 에 설치된 응용 프로그램이라는 것이 있기 때문입니다.
이제 마이그레이션은 데이터베이스 간에 이식 가능합니다.
즉
, 마이그레이션은 테이블이
어떻게 표시되어야하는지에 대한 논리적 설명이며 진화입니다.
그들이 의미하는
것은이 테이블의 첫 번째 버전과 같습니다.
마이그레이션이 처음 실행될 때 첫 번째 models.py 는 001입니다.
그런 다음 models.py 를 변경하고
마이그레이션을 다시 실행하면
마이그레이션 001에서 models.py 및 002로 변경 사항을 확인한
다음 002가 모든 것을 지우고 다시 시작하는 것과 같지 않습니다.
“아, 잠깐, 방금 한 열을 추가했습니다.
나는 가서 그 칼럼을 추가 할 것이다.” 그러나
실제 SQL 인 방식으로는 수행되지 않습니다.
따라서 마이그레이션 자체는
Python과 비슷하며 데이터베이스간에 이식
할 수 있습니다. 즉
, 컴퓨터에서
SQLite를 사용할 수 있으며 프로덕션 환경에서는 MySQL을 사용할
수 있으며 마이그레이션은 두 가지 모두에서 동일합니다.열의 경우 여기에 유형이 있습니다.
여기에 유형이 있습니다.”
이제 마이그레이션 명령과 대조됩니다.
Migration 명령은
모든 마이그레이션을 읽은
다음 대화하고있는 데이터베이스를 알고 필요한 테이블을
만들거나
필요한 테이블을 진화시키기 위해 SQL 명령을 실행합니다.
여기
첫 번째 이주가 있습니다. 두 번째 이주입니다.
여기 세 번째 이주가 있습니다.
테이블을 만들고 테이블을
변경하고 테이블을 변경하고 테이블을
변경하고
모든 마이그레이션이 끝나면 마이그레이션이
모든 마이그레이션을 통과 한 다음
데이터베이스 테이블을 갖습니다.최신 models.py 파일.
그래서 그것은 조금 복잡합니다.
데이터베이스
이식성과 휴대용 부품을
비 휴대용 부품에서 분리하려고한다는 사실과 관련이 있습니다.
그래서 당신이 화장 마이그레이션을 보면
여기에 dj4e 샘플이 있습니다,
내 작은 샘플 물건,
거기에 많은 모델이 있습니다.
그리고 모든 models.py 를 살펴보면
dj4e 샘플 프로젝트의 모든 응용 프로그램에 대해
models.py 파일을 볼 수 있으며
Python 코드입니다. 클래스, 책, 어쩌고, 저쩌고, 저쩌고.
그것은 매우 이식성이 있으며,
우리의 파이썬 코드에서, 우리의 장고 코드에서,
데이터베이스 모델을 볼 수 있습니다.
그리고 당신이 메이크 마이그레이션을 실행할 때,
그것은 이러한 마이그레이션 파일을 생성하고
그들은 단지 등 autos/migrations/001_initial.py,
그리고 그래서 당신은 내가 여기에있는 것들 중 일부를 볼 수,
실제로 그들 중 두 가지가 있습니다.
그래서 일종의 첫 번째 파일을 만든
다음 모델 파일을 변경 한
다음 다시 makemications를 실행하고 모델이
모델
파일의 첫 번째 버전에서 두 번째 버전으로 어떻게 변경되었는지 기록했습니다.
이것들을 볼 수는 있지만 편집하지 마십시오.
GitHub에 체크 인 할 수는 있지만 편집하지는 마십시오.
하지만 좀 봐요 그것들은 매우 이식 가능한 표현입니다.
그들은 models.py 파일처럼 보입니다.
당신은 그것들을 바꿀 필요가 없으며,
메이크 마이그레이션을 통해 생성해야합니다. 그리고 다시,
그들은 GitHub에 들어갈 수 있습니다.
이제
마이그레이션은 기본적으로 하나의 마이그레이션 파일뿐만 아니라 모든 마이그레이션 파일을 읽습니다. 그러나 일련의 마이그레이션 파일이있는 경우
필요에 따라 순서대로 모두 적용합니다.
그리고 데이터베이스에
첫 번째와 두 번째 마이그레이션이
적용되었지만 세 번째 마이그레이션은 적용되지
않았다면, “아시다시피
, 이미 존재하는이 데이터베이스를
조정하고 이미 실행 중이며 열을 추가하거나
열의 너비를 변경하십시오.
models.py 를 편집하여 수행 할 것을 요청한 것이 무엇이든.”
따라서 마이그레이션이 완료되면
데이터베이스에 전체 테이블이 생기고
응용 프로그램 이름과 응용 프로그램
내의 모델 이름을 기반으로합니다.
그래서 여기 어딘가에 책,
북원_인스턴스, 그리고 북원_랑입니다.
그 모든 것들이 거기 앉아 있습니다.
그래서 그것들은 모두 테이블입니다. 그리고 우리는
전에 그 테이블을 살펴 보았습니다.
그러나 이것이
이 프로젝트의 모든 응용 프로그램에 분산된 모든 작은 마이그레이션에서 이어지는 마이그레이션입니다. 그런 다음
모든 것을 가진 데이터베이스를 하나로 묶습니다.
그리고 마이그레이션은
진화에 관한 것입니다.
왜냐하면 여기에서 살펴보면
django_migrations라는 하나의 작은 테이블과
장고가 django_migrations 테이블에서 수행하는 작업을 볼 수 있기 때문입니다.
이 데이터베이스는 마이그레이션을
진행하면서 “아,
이 데이터베이스에서 아직 수행되지 않은 것이 있습니다.
그래서 데이터베이스를 조금만 조정해야합니다.”
그래서 수행 된 마이그레이션을 기억합니다.
아주 매혹적입니다.
이 작은 응용
프로그램에서는 항상 그렇게 영리할 필요는 없습니다.
그래서 때때로 당신이하고 싶은 일은
“나는 혼란스러워요, 나는
makeMigrate를 다시 실행할 것입니다.”
왜냐하면 당신이 실제로 프로덕션을 실행하지 않기 때문에,
당신은 정말로 반복해서 그것을하고 있기 때문에,
당신은 메이크 마이그레이션을 다시 실행할 수 있습니다.
그리고 당신이 이것을하는 방법은
기본적으로 단순히 파일을 삭제하는 것입니다,
당신은 이러한 파일을 삭제할 수 있습니다.
나는 0으로 시작하는 모든 것들을 삭제할 것이다.
당신이 메이크 마이그레이션을 다시 실행하려고하는 경우,
메이크 마이그레이션을 다시 실행
제로로 시작하는 모든 것들을
삭제하고이 응용 프로그램
, 마이그레이션에, 다음이 모든 제거,
그리고 당신은
메이크업을 다시 실행할 수 있습니다 그리고 그것은
당신의 models.py 파일을 읽을 것입니다는
마이그레이션 파일을 다시 만드는 데 필요한 모든 작업을 수행합니다.
맞습니다, 지금은 데이터베이스가 아닙니다.
데이터베이스를 만드는 방법에 대한 지침입니다.
그래서 메이크 마이그레이션을 다시 실행하는 방법입니다.
마이그레이션을 처음부터 실행할 수 있습니다.
실제로 더 쉽습니다.
그래서 당신은 일종의
하나의 응용 프로그램에 대한 마이그레이션을 제거 할 수 있습니다 그리고 나는 그것을했다,
그냥 여기에 북원을 지워,
그것은 내가 한 일을 다시 시작한 것입니다,
하지만 당신은 모든 마이그레이션과
모든 데이터베이스 및 모든 것을 제거 할 수 있습니다
이 경우 파일을 제거하기 때문에
가 SQLite를 실행하는 경우 마이그레이션 후 모든 것이 해당 파일에 있기 때문에 rm db.sqlite 파일을 지우십시오.
그럼 당신은 그것을 닦아, 그것은 사라 졌어요.
이제 관리자 계정 또는
무언가를 만들었을 수도 있습니다. 그리고 당신도 그것을 지울 것입니다.
데이터를 지우고
테이블을 지울 것입니다. 모든 것이 사라졌습니다.
그것은 내가 SQLite에 대해 좋아하는 한 가지입니다. 이 하나의 파일을 제거하면 문자 그대로 모두 사라졌습니다.
그런 다음 python3 manage.py
마이그레이션을 다시 실행하면
모든 마이그레이션을 읽고 멋지고
깨끗하고 완벽한 빈 데이터베이스로 만듭니다.
따라서 당신이
멈추고 데이터를 잃어 버리는 것을 두려워하지 않는다면,
대부분의 초기 프로그래머에서는
SQLite를 지우고
다시 마이그레이션을 실행하는 것이 좋습니다.
그냥 가서 그것을 시도하십시오.
내가 말했듯이, 관리자 계정을 만들면
다시 만들어야합니다.
그러나
적어도 이러한 초기 응용 프로그램에서는 할 수있는 최악입니다.
이제 우리는
어떻게
마이그레이션을 수행하는 방법, Django models.py 인코딩하는 방법, 데이터 모델을 마련하는 방법에 대해 이야기 한 것을, 어떻게
물건을 마이그레이션하는 방법과 그것에서 데이터베이스를 만드는 방법,
지금 우리는
당신이
업데이트하기 위해 실행할 수있는 파이썬 코드의 종류에 대해 이야기거야데이터베이스에 이러한 모델.
[ 음악]