내 Django 모델 중 하나는 서브 클래스이며 원래 클래스와 매우 유사한 슈퍼 클래스로 변경하려고합니다. 특히 새 수퍼 클래스는 동일한 객체를 설명하고 동일한 기본 키를가집니다. South에서 새 OneToOne 필드를 만들고 이전 값을 새 값으로 복사하려면 어떻게해야합니까?남쪽에서 이전 열의 값을 새 열로 복사 할 수 있습니까?
답변
남쪽에는 스키마 마이그레이션과 데이터 마이그레이션이라는 두 가지 마이그레이션 유형이 있습니다.
당신이 schemamigration를 생성 한 후, 해당 데이터 마이그레이션 만들 :
./manage.py datamigration <app> <migration_name>
forwards()
이라는 메서드가 있습니다. 여기에 이전 테이블의 값을 새 테이블에 복사하는 절차를 정의합니다.
주어진 테이블의 구조를 좀 더 복잡한 레이아웃으로 변경하는 경우 일반적인 방법은 데이터 마이그레이션과 관련하여 두 가지 스키마 마이그레이션을 수행하는 것입니다. 첫 번째 스키마 마이그레이션은 필드를 추가하고 데이터 이전은 이전 필드를 새 필드 및 두 번째 스키마 마이그레이션은 이전 필드를 삭제합니다. 액세스중인 스키마 (이전 또는 현재)를 추적하는 한 forwards()
메소드를 사용하여 데이터베이스와 관련된 모든 작업을 수행 할 수 있습니다. 일반적으로, 당신은 orm.
-related에서 읽고 전통적인 Django 접근 자에게 글을 씁니다.
South Data Migration Tutorial에 자세히 설명되어 있습니다. 이 문서에서는 South의 orm
참조를 사용하여 스키마 마이그레이션 이전의 스키마를 사용하여 데이터베이스에 액세스하는 방법을 보여주고 Django가 이해할 수없는 필드에 대해 불평하지 않고 데이터베이스에 액세스 할 수 있도록합니다.
클래스의 이름을 바꾸는 경우 까다로운 작업 일 수 있습니다. 새 테이블을 만들고 다른 테이블로 이전하고 이전 테이블을 삭제해야합니다. South는이를 수행 할 수는 있지만 스키마와 데이터 마이그레이션을 이동하는 데는 한 번 이상 걸릴 수 있습니다.
South에는 backwards()
메서드도 있습니다.이 메서드를 사용하면 데이터베이스 테이블을 이전 단계로 되돌릴 수 있습니다. 어떤 경우에는 이것이 불가능할 수도 있습니다. 새 테이블은 다운 그레이드에서 손실 될 정보를 기록 할 수 있습니다. 디버그 모드가 아닌 경우 backwards()
에 예외를 던지는 것을 권장합니다.
- 1. 열의 값을 두 개의 다른 열로 나누십시오.
- 2. ntext 열의 값을 null이 아닌 새로운 열로 복사하는 방법
- 3. 한 열의 하위 문자열을 복사하고 다른 열로 복사
- 4. 업데이트 후 열의 이전 값을 얻는 방법
- 5. 새 열의 새 그룹
- 6. 사용자는 새 프로필과 함께 이전 프로필에 액세스 할 수 있습니까?
- 7. 한 열의 값을 표로 두 열로 분리하는 방법
- 8. 값을 알파벳 열로 저장 하시겠습니까?
- 9. sql : 어떻게 테이블에서 다른 값을 복사 할 수 있습니까?
- 10. .NET : 이전/새 값을 포함하는 PropertyChangedEventArgs의 기본 제공 버전이 있습니까?
- 11. 복사 이전 버튼
- 12. TFS2010에서 파일 기록을 복사 할 수 있습니까?
- 13. MySQL 쿼리로 행을 열로 변환 할 수 있습니까?
- 14. PHP에서 이전 세션 변수 값을 검색 할 수 없습니다
- 15. 레일스 3에서 값을 새 열로 설정하는 방법은 무엇입니까?
- 16. 삽입시 한 열의 값을 삽입하십시오.
- 17. 봄에 체크 박스의 이전 값을 가질 수 있습니까?
- 18. 모든 위키를 하나의 Trac에서 다른 Trac으로 복사 할 수 있습니까?
- 19. 트림 된 버전이있는 열의 값을 업데이트 할 수 없습니다. 왜?
- 20. msbuild는 하위 디렉토리에서 루트 디렉토리로 복사/복사 할 수 있습니까?
- 21. Telerik RadGridView 열의 반복 값을 방지하는 방법
- 22. 다각형을 새 위치로 복사
- 23. insert 문에서 열의 값을 다르게 지정할 수 있습니까?
- 24. git 저장소를 Windows에 복사 할 수 있습니까?
- 25. SVN은 sqlite를 복사 할 수 있습니까?
- 26. * .dll.config 파일을 자동 복사 할 수 있습니까?
- 27. UIView에서 CALayer를 복사 할 수 있습니까?
- 28. 안드로이드 네이티브 데이터베이스를 복사 할 수 있습니까?
- 29. API 데이터베이스를 "복사"할 수 있습니까?
- 30. 비품은 다른 비품에서 "복사"할 수 있습니까?