Need Pattern for lookup tables in Google App Engine
If it's really created once and never changes within the lifetime of a deployment, and it's relatively small (a few megs or less), store it with your app as data files. Have the app load the data into memory initially, and cache it there.
I'm using the Python version of Google App Engine and Datastore.  What is a good way to load a table that will contain lookup data?
By look up data I mean that after the initial load no rows will need to be inserted, deleted, or updated
Blowing away all rows and reloading the table is not acceptable if it destroys referential integrity with other rows referring to it.
Here is an example of a couple kinds that I am using that I want to load lookup data into
class Badge(db.Model):
    name = db.StringProperty()
    level = db.IntegerProperty()

class Achievement(db.Model):
    name = db.StringProperty()
    level = db.IntegerProperty()
    badge = db.ReferenceProperty(reference_class=Badge)

Here is an example of a kind not holding look up data but referring to it
class CamperAchievement(db.Model):
    camper = db.ReferenceProperty(reference_class=Camper)
    achievement = db.ReferenceProperty(reference_class=Achievement)
    session = db.ReferenceProperty(reference_class=Session)
    passed = db.BooleanProperty(default=True)
I'm looking to find out two things:
What should the code to load the data look like?
What should trigger the loading code to execute?