我在我的记录中引入了一个名为时间戳的新字段。现在我想浏览所有旧记录并设置该值。
我创建了一个 REST 调用并成功地对其进行了单元测试。我还在本地开发环境中运行它并且它可以工作。
@requires_auth
def get(self):
user = User.query(User.email == request.authorization.username).fetch(1)[0]
if user and user.email == Config.ADMIN_EMAIL_SHORT:
users = User.query()
records = []
for user in users:
user_records = Record.query(Record.user == user.key)
for rec in user_records:
if rec.timestamp == 0:
midnight_dt = set_time_to_midnight(rec.record_date)
rec.timestamp = create_timestamp(midnight_dt)
records.append(rec)
ndb.put_multi(records)
return 'Migration complete', 200
else:
return 'Sorry. You have no permission.', 403
但是,一旦我部署它,尽管有成功消息,并且日志文件中没有任何异常错误,我仍然有旧的时间戳。然后我意识到了原因。
NoSQL 的性质意味着这些字段显然不存在。因此我的条件if rec.timestamp == 0:
没有抓住他们。
如果它有时间戳字段,我如何在记录对象中搜索?