5

SQL Alchemy 또는 Django는 기본적으로 관계형 데이터베이스를 기반으로합니다. 따라서 모델을 변경하려면 sqlalchemy-migrate 또는 South와 같은 마이그레이션 도구가 필요합니다.Google 애플리케이션 엔진에서 모델 변경시 발생하는 결과

이제 Google App Engine으로 전환하고 ndb를 활용하면 모델을 변경하면 어떻게됩니까? 이론적으로 Big Table과 같은 NoSQL 데이터베이스는 진화하는 스키마에 신경 쓰지 않아야하므로 마이그레이션이 필요하지 않습니다.

그러나이 모델과 같은 모델을 정의하는 것은 유효성을 검사 할 스키마를 분명히 나타냅니다.

class ExampleModel(ndb.Model): 
    example_name = ndb.StringProperty(required=True) 
    example_description = ndb.TextProperty(required=True) 
    added_by = ndb.UserProperty() 
    timestamp = ndb.DateTimeProperty(auto_now_add=True) 

필드를 추가하면 어떻게됩니까? 입력란을 변경했거나 입력란을 삭제 했습니까?

내 가정은 다음과 같다 :

필드

  • 에게 아마도 가장 쉬운 경우 추가 모델의 새로운 인스턴스 는 새로운 분야에 대해 검증됩니다. 이전 인스턴스를로드 할 때 필드는 단순히 비어 있습니다. 그러나 필드가 필요한 경우 으로 설정되면 어떻게됩니까?

모든 이전 인스턴스가 삭제 된 필드에 대한 데이터를 고아가 포함됩니다이 경우 필드

  • 삭제. 그러나 그들은 거기에 머물러 있으며 지금부터는 무시 될 것입니다. 에 있습니다.

필드 이름

  • 상기 둘의 조합을 변경하는 단계; 새 이름은 새 필드로 간주되며 이전 필드는 무시되고 고아가됩니다.

이 가정이 맞습니까?

답변

5

당신은 문서의 질문에 많은 답변을 찾을 수 있습니다

Google App Engine - Updating Your Model's Schema

그러나 필요에 따라 필드가 설정되어있는 경우 어떻게되는지?

필요에 따라 속성을 설정한다는 것은 생성자에서 직접 값을 설정해야한다는 것을 의미하므로 기존 항목은 영향을받지 않습니다.

관련 문제