Hi there, Yes you are right - The table should have the compose key as unique but VirtualMart does not do it - and imposing it cause problem.
Thank you very much for your help, I highly appreciated it and learned another experience with storm :-) Cheers, On Fri, Jan 7, 2011 at 9:19 AM, Steve Kieu <[email protected]> wrote: > > 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 > -- Steve Kieu
-- storm mailing list [email protected] Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/storm
