dynamodb-mapper /

Filename Size Date modified Message
186 B
705 B
7.5 KB
1.5 KB
567 B
364 B

dynamodb-mapper -- a DynamoDB object mapper, based on boto.


The documentation currently assumes that you're running Boto 2.3.0 or later. If you're not, then the API for query and scan changes. You will have to supply raw condition dicts, as is done in boto itself.

Also note that Boto 2.3.1 or later is required for autoincrement_int hash keys. Earlier versions will fail.

Example usage

We assume you've correctly set your Boto credentials.

Your Model

from dynamodb_mapper.model import DynamoDBModel

class DoomMap(DynamoDBModel):
    __table__ = "doom_map"
    __hash_key__ = "episode"
    __range_key__ = "map"
    __schema__ = {
        "episode": int,
        "map": int,
        "name": unicode,
        "cheats": set,
    __defaults__ = {
        "cheats": set(['Konami']),

Initial Table creation

conn = ConnectionBorg()
conn.create_table(DoomMap, 10, 10, wait_for_active=True)

Model Usage

e1m1 = DoomMap()
e1m1.episode = 1 = 1 = u"Hangar"
e1m1.cheats = set(["idkfa", "iddqd", "idclip"])

# Later on, retrieve that same object from the DB...
e1m1 = DoomMap.get((1, 1))

# query on hash+range-keyed tables
e1_maps = DoomMap.query(hash_key=1)

from boto.dynamodb.condition import GT
e1_maps_after_5 = DoomMap.query(