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)
필드를 추가하면 어떻게됩니까? 입력란을 변경했거나 입력란을 삭제 했습니까?
내 가정은 다음과 같다 :
필드
- 에게 아마도 가장 쉬운 경우 추가 모델의 새로운 인스턴스 는 새로운 분야에 대해 검증됩니다. 이전 인스턴스를로드 할 때 필드는 단순히 비어 있습니다. 그러나 필드가 필요한 경우 으로 설정되면 어떻게됩니까?
모든 이전 인스턴스가 삭제 된 필드에 대한 데이터를 고아가 포함됩니다이 경우 필드
- 삭제. 그러나 그들은 거기에 머물러 있으며 지금부터는 무시 될 것입니다. 에 있습니다.
필드 이름
- 상기 둘의 조합을 변경하는 단계; 새 이름은 새 필드로 간주되며 이전 필드는 무시되고 고아가됩니다.
이 가정이 맞습니까?