I guess I found answer for my new issue of not updated db.table. It is 
sqlite problem - no ability to drop or add column.
See here: 
http://web2py.com/books/default/chapter/29/6#Fixing-broken-migrations


On Friday, February 7, 2014 8:17:08 PM UTC+3, Andrey K wrote:
>
> Thanks Anthony.
> Yahaaa. Now it works in Terminal. As u suggested I have changed settings 
> of lazy_tables to False and it works as:
> db = DAL('sqlite://se2.sqlite',check_reserved=['postgres', 
> 'postgres_nonreserved'],pool_size=10,lazy_tables=False, migrate=True, 
> fake_migrate=False)
>  now I got right results:
> >>> db.ta._fields                                                         
>                                                                             
>  
> ['id', 'f1', 'newfield']
>
> *BUT it does not work in the web app*. session.flash = db.ta._fields - 
> giving me right result (['id', 'f1', 'newfield']) BUT in the table (app
> /appadmin) and SQLFORM.grid I don't have any change. Any idea why it is 
> not working in the app?
>
> Anthony I wonder what is wrong in the adding fields to the table in this 
> way? What is the maximum number of fields I can add db table?
>
> Web2py community is the best one I have every entered in my life!!! 
> Anthony, thanks again for your help!!!
>
>
>
> On Friday, February 7, 2014 7:30:42 PM UTC+3, Anthony wrote:
>>
>> Looks like it's an issue with lazy_tables. I'll look into it, but for 
>> now, give it a try by turning off lazy_tables.
>>
>> Anthony
>>
>> On Friday, February 7, 2014 8:45:46 AM UTC-5, Anthony wrote:
>>>
>>> Hmm, works for me. What version of web2py are you using?
>>>
>>> On Friday, February 7, 2014 8:07:10 AM UTC-5, Andrey K wrote:
>>>>
>>>> Thanks Anthony for your concise answer!
>>>> I have tried it in the app code -  it did not work, giving me no error. 
>>>> I have tried your code in the terminal and it looks the code does not 
>>>> create new table field. Any idea why it does not work? Maybe its my db 
>>>> settings? I use sqlite db. Your help would very helpful to me as all 
>>>> my app dependent on this function. 
>>>>
>>>> Here is my trial in a terminal:
>>>>
>>>> >>> from gluon import DAL, Field
>>>> >>> db = DAL('sqlite://se2.sqlite',check_reserved=['postgres', 
>>>> 'postgres_nonreserved'],pool_size=10,lazy_tables=True, migrate=True, 
>>>> fake_migrate=False) 
>>>>
>>>> >>> ta_args = dict(format='%(f1)s')                                     
>>>>                                                                            
>>>>  
>>>>           
>>>> >>> db.define_table('ta',    Field('f1', 'string'),    **ta_args)
>>>> >>> db._tables
>>>> ['ta']
>>>> >>> db.ta._fields                                                       
>>>>                               
>>>> ['id', 'f1']
>>>> #if understand correctly here I am trying to add new field 'newfield' 
>>>> to the ta table.
>>>> >>> db.define_table('ta', db.ta,Field('newfield', 'string', default = 
>>>> 'abc'),redefine=True, **ta_args)                       
>>>> >>> db.ta._fields 
>>>> #it giving me no change in db.table field list                         
>>>>                                                            
>>>> ['id', 'f1']
>>>>
>>>> On Thursday, February 6, 2014 4:41:29 PM UTC+3, Anthony wrote:
>>>>>
>>>>> The safest way is probably to redefine the whole table.
>>>>>
>>>>> *models/dp.py:*
>>>>>
>>>>> tA_args = dict(format='%(f1)s', ...)
>>>>> db.define_table('tA',
>>>>>     Field('f1', 'string'),
>>>>>     **tA_args)
>>>>>
>>>>> *controllers/default.py:*
>>>>>
>>>>>     db.define_table('tA', db.tA,
>>>>>         Field('newfield'),
>>>>>         redefine=True, **tA_args)
>>>>>
>>>>> Anthony
>>>>>
>>>>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to