一般に、モデルを自動的に生成することはそれほど難しくありません。(フィールド名、データ型)で構成される行を含む各テーブルのcsvファイルがあるとすると、次のようなものが機能します。
# Maps MySQL types to Datastore property classes
type_map = {
'char': 'StringProperty',
'text': 'TextProperty',
'int': 'IntegerProperty',
# ...
}
def generate_model_class(classname, definition_file):
ret = []
ret.append("class %s(db.Model):" % (classname,))
for fieldname, type in csv.reader(open(definition_file)):
ret.append(" %s = db.%s()" % (fieldname, type_map[type]))
return "\n".join(ret)
スキーマを定義すると、DBから直接一括ロードできます。中間のCSVファイルは必要ありません。この件に関する私のブログ投稿を参照してください。