Я бы решил эту проблему, используя библиотеку mapreduce .
Сначала зарегистрируйте преобразователь в mapreduce.yaml
:
mapreduce:
- name: fixing required property
mapper:
input_reader: mapreduce.input_readers.DatastoreInputReader
handler: your handler
params:
- name: entity_kind
default: main.ModelV2
, а затем определите process
функция для изменения сущностей:
from mapreduce import operation as op
def process(entity):
if not entity.newproperty :
entity.newproperty = None
yield op.db.Put(entity)
Если вы имеете дело с относительно небольшим числом сущностей, вы можете избежать mapreduce, изменяющего напрямую ваши сущности примерно так:
entities = ModelV2.all()
for entity in entities :
if not entity.newproperty :
entity.newproperty = None
entity.put()