web2py を使用して Web サイトを強化しています。私は、サイトの背後で実行される長期実行プログラムに web2py DAL を使用することにしました。このプログラムは、データまたはデータベースを更新していないようです (時々)。
from gluon.sql import *
from gluon.sql import SQLDB
from locdb import *
# contains
# db = SQLDB("mysql://user/pw@localhost/mydb", pool_size=10)
# db.define_table('orders', Field('status', 'integer'), Field('item', 'string'),
# migrate='orders.table')
orderid = 20 # there is row with id == 20 in table orders
#when I do
db(db.orders.id==orderid).update(status=6703)
db.commit()
データベースは更新されず、この ID を持つ注文を選択すると、正しいデータが表示されます。状況によっては、コミット後の「db.rollback()」が役立つようです。
控えめに言っても非常に奇妙です。これを見たことがありますか?さらに重要なのは、解決策を知っていますか?
更新:
訂正: 問題の選択は、プログラムの外部ではなく、プログラム内で行われます。
一連の更新を行うと、一部は機能して外部で利用できるようになり、一部は利用できなくなることがあります。また、一部のクエリは、th4 元のクエリ以降に DB でデータが変更された場合でも、最初に返されたデータを返します。
私はこのアプローチを捨てて別の方法に移りたいと思っています。何か提案はありますか?