Last active
December 8, 2019 18:53
-
-
Save ankona/8ee898d321e39da38dc9 to your computer and use it in GitHub Desktop.
Demonstration of removing a db.XxxProperty from a model
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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