0

안녕하세요, 현재 내 장고 프로젝트 스키마를 변경하려고하는데 데이터 마이그레이션 도구가 남쪽입니다. 장고 버전은 1.6.9입니다.기존 데이터베이스에 대해 비어 있지 않은 필드를 비워 두는 것이 안전합니까?

기존 데이터베이스이므로 내 기록 데이터를 엉망으로 만들고 싶지 않습니다.

내가 여기 내 모델 클래스입니다 빈 = 진정한 필드가 비어 (거짓 = 빈)하고있다 변경하기 위해 노력하고있어 :

class Post(DraftableModel, EditTrackingModel): 
    title = models.CharField(max_length=120, 
          verbose_name='headline') 

    description = models.CharField(max_length=260, 
            blank=True, 
            verbose_name='lead-in', 
            help_text="260 character limit") 
    /*rest of the code*/ 

내가 models.CharField(blank=True)에서 models.CharField(blank=False)에 설명을 변경하려면 , 이는 기본 공백 값입니다 내 데이터베이스의 존재를 고려하면, 내 오래된 포스트 모델의 일부는 빈 설명이 있습니다. 마이 그 레이션 및 데이터베이스 스키마 변경 후 데이터베이스가 손상됩니까?

답변

1

마이그레이션을 시도 할 때 django는 빈 필드에 대해 경고합니다. 그래서 몇 가지 옵션이 있습니다.

  • 당신은 default="Some Default Value" 같은 모델에 기본 값을 추가하고 뜻이 이전에 모든 빈 필드에 디폴트 값을 선택 장고 수 있습니다.

  • 마이그레이션 요청을 보낼 수 있으며 터미널에서 django는 모든 비어있는 필드에 추가 할 일회용 값을 추가하도록 요청합니다.

  • 또한 마이그레이션 파일을 편집하고 마음에 들었던 조건에 따라 빈 필드에 다른 값을 추가 할 수 있습니다.

  • 행을 종료하기위한 모든 빈 필드를 확인하고 일부 조건에 따라 일부 데이터를 추가하는 기능을 작성할 수 있습니다.

또한 백업을 먼저 작성하는 것이 좋습니다. 변경 사항이 얼마나 작은 지 또는 코딩에 얼마나 좋은지는 중요하지 않습니다.

관련 문제