GAE, Cloud SQL и run_in_transaction

Използвам GAE с Cloud SQL.

Изглежда не мога да видя това споменато в документацията, така че реших да попитам само за да изясня разбирането си.

Това е стандартният метод за групиране на транзакции, т.е.

def do_something_in_transaction(...)
  update my CloudSQL database record
  taskqueue.add(url='/path/to/my/worker', transactional=True)
  ...

db.run_in_transaction(do_something_in_transaction, ....)

Предполага се, че работи за облачен SQL?

Също така мога ли да актуализирам/вмъкна/изтрия множество записи (т.е. толкова, колкото ми трябват) по време на извикването run_in_transaction?

i.e:

def do_something_in_transaction(...)
   x_id = insert record into table x
   update table y record with x_id
   insert record into table a
   insert record into table b
   … etc
  taskqueue.add(url='/path/to/my/worker', transactional=True)

Благодаря предварително, Мат


person Sway    schedule 13.11.2012    source източник


Отговори (1)


Като се има предвид, че е част от db компонента, мисля, че run_in_transaction е специфичен за хранилището на данни.

За CloudSQL използвайте SQL команди за транзакции START TRANSACTION, COMMIT, ROLLBACK.

person dragonx    schedule 14.11.2012
comment
Да вярно. Благодаря. Надяваме се, че ще получа отговор и от екипа на GAE. - person Sway; 15.11.2012