I have thought about a case - if the compose primary key is *not* actually unique in the db it may cause the problem
so I will try your idea tonight (I am at work now ) to see if it gets fixed, probably have to change the logic there ) Thanks On Fri, Jan 7, 2011 at 9:13 AM, Steve Kieu <[email protected]> wrote: > I think (from reading storm doc somewhere) I can use a unique compose key > to tell storm that it can be used as primary tuple in get function. In fact > I used this in various other scripts which runs fine. > > If this is the problem it does not explain why everything is working - that > is I can print out all Product, etc inside the find tuple - I can even > create new record for the ProductDiscountHistory fine. Bad thing *only* > happen when I change the product_discount_id of the Product to use the new > discount. > > I tried to use find in getone method - no change > > Tried to invalidate the pt after saving the id key, then get the Product > using that id key and change its product_discount_id, - no change > > Enable DEBUG in storm and does not print any usefull information - just the > last SQL statement as normal and boom - error > > Nevertheless I will try your suggestion tonight but I strongly believe it > does not solve the problem. It happens with both python version 2.7.1 and > Ubuntu lucid stock python (2.6.x) so unlikely it is python GC problem > > > > Cheers, > > > > > On Fri, Jan 7, 2011 at 6:00 AM, Gerdus van Zyl <[email protected]>wrote: > >> in ProductDiscount >> you have both: >> __storm_primary__ = 'amount', 'is_percent', 'start_date' >> and >> id = Int(name='discount_id', primary=True) >> >> I don't think that you can have two definition of the primary key that are >> different; >> >> and then in ProductDiscount.getone >> you use >> one = store.get(ProductDiscount, (amount, is_percent, start_date) ) >> according to me you need to use find >> >> >> On Thu, Jan 6, 2011 at 3:12 PM, Steve Kieu <[email protected]>wrote: >> >>> Hello, >>> >>> I have a simple script (attached to this email )- and evrytime I run, i >>> got >>> >>> >>> ste...@lenovo:~/hang-hieu-uc/python$ python bulk_price_update.py >>> Number of record: 202 >>> /usr/lib/python2.6/dist-packages/storm/database.py:342: Warning: Data >>> truncated for column 'amount' at row 1 >>> return function(*args, **kwargs) >>> Traceback (most recent call last): >>> File "bulk_price_update.py", line 137, in <module> >>> process() >>> File "bulk_price_update.py", line 129, in process >>> new_pt.product_discount_id = new_pd.id; store.flush() >>> File "/usr/lib/python2.6/dist-packages/storm/properties.py", line 60, >>> in __get__ >>> return obj_info.variables[column].get() >>> File "/usr/lib/python2.6/dist-packages/storm/variables.py", line 178, >>> in get >>> self.event.emit("resolve-lazy-value", self, self._lazy_value) >>> File "/usr/lib/python2.6/dist-packages/storm/event.py", line 53, in >>> emit >>> if callback(owner, *(args+data)) is False: >>> File "/usr/lib/python2.6/dist-packages/storm/store.py", line 891, in >>> _resolve_lazy_value >>> result, result.get_one()) >>> File "/usr/lib/python2.6/dist-packages/storm/store.py", line 746, in >>> _set_values >>> raise LostObjectError("Can't obtain values from the database " >>> storm.exceptions.LostObjectError: Can't obtain values from the database >>> (object got removed?) >>> >>> I am stuck at new idea to fix it, please help >>> >>> If I do not modify the product_discount_id of a product then it printed >>> values fine and create in the history table fine. First I directly modify >>> the pt object, but then try to get a product again using pt.id, however >>> it does not help in both cases. >>> >>> The DB is VirutalMart DB if it helps >>> >>> Many thanks in advance >>> >>> >>> >>> -- >>> Steve Kieu >>> >>> -- >>> storm mailing list >>> [email protected] >>> Modify settings or unsubscribe at: >>> https://lists.ubuntu.com/mailman/listinfo/storm >>> >>> >> >> >> -- >> Gerdus van Zyl >> http://about.me/gerdus >> > > > > -- > Steve Kieu > -- Steve Kieu
-- storm mailing list [email protected] Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/storm
