четверг, 24 сентября 2009 г.

GAE. Bulkload. Загрузка дампа.

Изучаю Google App Engine. Тестирую. Столкнулся с необходимостью загрузить дамп таблицы. Много времени потратил, пытаясь сделать все по инструкции. Оказалось - она несколько устаревшая что-ли...

Публикую мой рабочий пример:
Конфиг app.yaml:
application: fun-test
version: 2
runtime: python
api_version: 1

handlers:
- url: /remote_api
  script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py
  login: admin

- url: /.*
  script: main.py

Класс для загрузки .csv - uploader.py (обратите внимание - класс bulkloader не подключен, в коде фигурирует просто Loader):
# coding=UTF-8
import datetime
from google.appengine.ext import db

class Test(db.Model):
 Name=db.StringProperty()
 LastName=db.StringProperty()
 
class TestLoader(Loader):
 def __init__(self):
  Loader.__init__(
   self, 
   'Test',
   [('Name',str),
   ('LastName',str)]
  )   
 
loaders = [TestLoader]

Дамп d.csv:
Jonny, Lee
Carl,Donny
Nick,Cookie

Вызов процесса аплоада дампа: (обратите внимание на то, что вызывается bulkloader.py - в текущей версии appcfg.py у меня не умеет делать аплоад! Вызов для удобства разбиваю на строки...)
C:\Program Files\Google>c:\Python25\python.exe 
google_appengine/bulkloader.py
--filename=testapp/d.csv
--kind=Test
--url=http://localhost:8080/remote_api
--config_file=testapp/uploader.py
--app_id=fun-test

Вот. Только так у меня сейчас и работает. Успехов!

Комментариев нет: