I took a second look at this today. I had it working in April but
somehow it broke along the way since nobody else had access or tested
it. I fixed it now in trunk.

Here are some instructions:
1) read the docs: 
http://code.google.com/apis/sql/docs/before_you_begin.html#enroll
2) apply for a SQL instance: https://code.google.com/apis/console/?pli=1
3) Google will give you one and the name wil be
"your_project:instance1"
4) take your favorite web2py application (no limitation) and change
the connection string to this:

    if request.env.web2py_runtime_gae:
        db = DAL('google:sql://your_project:instance1/
mydbname',migrate_enabled=True)
        session.connect(request,response,db=db)
    else:
        db = DAL('sqlite://storage.sqlite')

web2py will create the database "mydbname" on the SQL instance
"your_project:instance1"

5) deploy it as you normally deploy on GAE (no need to test it with
dev_appserver). If it works with SQLite it will work with GAE+SQL.
Just make sure you do not read/write on filesystem. Everything should
work out of the box including migrations, transactions, joins, etc.


Caveats:

GAE has no filesystem. So *.table files are store in a table
web2py_filesystem with is not migrated. You do not want to access this
table at every request so, as soon as your app works, change
migrate_enabled=True into migrate_enabled=False.

Reply via email to