Google给的Datastore读写数量限制很坑爹,这直接导致了很多开发者逃离GAE。现在有了一种新的解决方案——GAE外接免费的Mongodb数据库
特性
Mongolab提供的数据库完全免费,用的是Google Compute Engine服务器,与GAE之间的延迟极低,500mb大小,对于个人使用已经完全足够了
高性能,经测试Mongodb接口的读写速度和Datastore几乎持平
容易移植,只需要改几行代码,以前运行在Datastore上的程序,就能无缝桥接到Mongodb,笔者已经测试过V2ex Babel 2、Doodle blog均能正常运转
使用方法
首先申请一个Mongolab免费数据库,注册好以后,在新建那里选Google Cloud Platform
新建一个以你appid命名的数据库
git clone https://github.com/ntkrnl/gae-mongodb
将gae-mongodb下文件夹一块复制到要迁移的项目文件夹
在工程主文件的头部,或者model.py头部加入如下几句代码,'mongodb://xxxxxx'是刚才申请得到的mongodb uri,port是连接端口
import os import datastore_mongodb_stub from google.appengine.api import apiproxy_stub_map mongodb = datastore_mongodb_stub.DatastoreMongoDBStub(os.environ['APPLICATION_ID'], False, 'datastore_v3', None, None, 'mongodb://xxxxxx', port) apiproxy_stub_map.apiproxy.ReplaceStub('datastore_v3', mongodb)
update到GAE测试是否运行成功