LINUX.ORG.RU

sqlalchemy postgre и транзакции


0

0

Привет,

написал простенькую аппликуху, которая пользуется sqlalchemy и sqlite

все работало нормально, покуда решил не пересесть на postgresql 

И началось. Остаются незакрытыми сессии.

postgres 12075 12066  0 Aug23 ?        00:00:01 postgres: writer process
postgres 12076 12066  0 Aug23 ?        00:00:00 postgres: stats buffer process
postgres 12077 12076  0 Aug23 ?        00:00:00 postgres: stats collector process
postgres 13869 12066  0 10:05 ?        00:00:00 postgres: deployer deployer 127.0.0.1(57821) idle
postgres 13870 12066  0 10:05 ?        00:00:00 postgres: deployer deployer 127.0.0.1(57822) idle
sawtscge 13914 13886  0 10:07 pts/8    00:00:01 watch -d ps -ef | grep post
postgres 13936 12066  0 10:07 ?        00:00:00 postgres: deployer deployer 127.0.0.1(57826) idle in transact
postgres 14072 12066  0 10:09 ?        00:00:00 postgres: deployer deployer 127.0.0.1(37627) idle
sawtscge 14350 13914  0 10:12 pts/8    00:00:00 sh -c ps -ef | grep post

idle in transaction

Если таких насобирается несколько то потом получается дидлок

Я раньше сессииями особо не заморачивался. Часто делал просто Session().query 

Сессии никогда не закрывал

А теперь приходится везде, во всем коде делать так

session = Session()
try:
   a = session.query
   a.b = 1
   session.commit()
finally:
   session.close()

Но это как то гемморойно на мой взгяд. Почему не закрываются сессиии сами если я область видимости с переменной session покидаю? Как это делается более элегантно?


Спасибо за внимание


  

Ответ на: комментарий от anonymous

Вообще бардак

На моей машине с python2.5 все вроде заработало, после того как все завернул в try finally. Запускаю на серваке, где python2.4 и все! Не работает. Сыпется где попало.

Вот что это к примеру?

sqlalchemy.exc.ProgrammingError: (ProgrammingError) no results to fetch None None

не понимаю!

:(

the_moon
() автор топика
Ответ на: комментарий от the_moon

А, понял, это по первому вопросу. Да будет приятней писать. Но все равно остаются какие то заморочки с сессиями. Откатил все назад на sqlite.

the_moon
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.