Skip to content

Instantly share code, notes, and snippets.

@ankona
Last active December 8, 2019 18:53
Show Gist options
  • Save ankona/8ee898d321e39da38dc9 to your computer and use it in GitHub Desktop.
Save ankona/8ee898d321e39da38dc9 to your computer and use it in GitHub Desktop.
Demonstration of removing a db.XxxProperty from a model
# run @ http://pace-dot-kapx-live-dev.appspot.com/_ah/stats/shell
# info @ https://developers.google.com/appengine/articles/update_schema
# NDB models can use 'del foo.bar' instead of delattr and avoid redeclaring the model as expando!
import os
import sys
import pprint
from google.appengine.api import memcache
from google.appengine.api import mail
from google.appengine.api import urlfetch
from google.appengine.ext import db
sys.path.insert(0, 'dist')
# execute against kapx-courses
#from models import DBSession
from models import SlideDeck
from google.appengine.ext import db
from pprint import pprint
class DBSession(db.Model):
opaqueID = db.StringProperty()
title = db.StringProperty()
start = db.DateTimeProperty()
end = db.DateTimeProperty()
clientCode = db.StringProperty()
moderated = db.BooleanProperty()
archived = db.BooleanProperty()
orientation = db.StringProperty()
format = db.StringProperty(default='comment')
interactive_archive = db.BooleanProperty(default=True)
video_provider = db.StringProperty()
slide_provider = db.StringProperty(choices=[v for v, t in SlideDeck.PROVIDERS], default="google")
courseID = db.IntegerProperty()
external_id = db.StringProperty() # third party ID for this session (optional)
thumb_url = db.StringProperty()
is_trial = db.BooleanProperty(default=False)
instructor_moderated = db.BooleanProperty(default=True)
web_enabled = db.BooleanProperty(default=True)
chat_enabled = db.BooleanProperty(default=True)
talkback_enabled = db.BooleanProperty(default=False)
optional_talkback_moderation_enabled = db.BooleanProperty(default=False)
whiteboard_enabled = db.BooleanProperty(default=True)
allow_anonymous = db.BooleanProperty(default=False)
q = DBSession.all()
for s in q:
if hasattr(s, "q_and_a_enabled"):
try:
pprint(s.q_and_a_enabled)
delattr(s, "q_and_a_enabled")
s.put()
except AttributeError, ae:
pprint(ae)
if hasattr(s, "show_open_talkback_to_instructor"):
try:
pprint(s.show_open_talkback_to_instructor)
delattr(s, "show_open_talkback_to_instructor")
s.put()
except AttributeError, ae:
pprint(ae)
class DBSession(db.Model):
opaqueID = db.StringProperty()
title = db.StringProperty()
start = db.DateTimeProperty()
end = db.DateTimeProperty()
clientCode = db.StringProperty()
moderated = db.BooleanProperty()
archived = db.BooleanProperty()
orientation = db.StringProperty()
format = db.StringProperty(default='comment')
interactive_archive = db.BooleanProperty(default=True)
video_provider = db.StringProperty()
slide_provider = db.StringProperty(choices=[v for v, t in SlideDeck.PROVIDERS], default="google")
courseID = db.IntegerProperty()
external_id = db.StringProperty() # third party ID for this session (optional)
thumb_url = db.StringProperty()
is_trial = db.BooleanProperty(default=False)
instructor_moderated = db.BooleanProperty(default=True)
web_enabled = db.BooleanProperty(default=True)
chat_enabled = db.BooleanProperty(default=True)
talkback_enabled = db.BooleanProperty(default=False)
optional_talkback_moderation_enabled = db.BooleanProperty(default=False)
whiteboard_enabled = db.BooleanProperty(default=True)
allow_anonymous = db.BooleanProperty(default=False)
q = DBSession.all()
for s in q:
try:
s.put()
except AttributeError, ae:
pprint(ae)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment