How should I properly initialize old rows after inserting a new field if 
default only updates the new rows? In my case the old rows should also work 
with the new field and value.

Should I do a for loop to manually update all 'old' rows to default value 
after defining the new field?

Ykä

On Tuesday, July 26, 2016 at 5:05:54 PM UTC+3, Niphlod wrote:
>
> yep. "default" is something that gets evaluated in python at insert time. 
> Given it takes also a callable, it can't be translated to a proper default 
> constraint on the backend. When you alter the table, you should do so ALSO 
> considering if it's full or empty, and/or that the new column would be 
> meaningful only from a certain "release" onwards.
>
> tl;dr: the naming is unfortunate, but "default" doesn't translate to 
> anything in the backend: all the machinery is done on the python layer.
>
> On Tuesday, July 26, 2016 at 10:13:19 AM UTC+2, Ykä Marjanen wrote:
>>
>> Hi,
>>
>> I have been using Web2py for couple years now, but have not been able to 
>> find a decent solution to this issue.
>>
>> When creating a new web app I am constantly updating new fields to a 
>> database table after I already have data there. When I add a new field, I 
>> want it to have a default value for it, but for some reason web2py always 
>> has the value at None for the new field even though I have defined it to be 
>> 0.
>>
>> For example:
>>
>> db.define_table(
>>     'persons',
>>    Field('old_field','integer',default=0),
>>    Field('new_field','integer',default=0)
>> )
>>
>> The new_field is now updated to the table correctly, but instead of 0 it 
>> is None for the old records.
>>
>> This is annoying as I am assuming old tables to have the new_field also 
>> set as 0 and now I must write code to assume None and change it manually to 
>> 0.
>>
>> Am I missing something?
>>
>> Ykä
>>
>>

-- 
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/d/optout.

Reply via email to