Wait! I figured it out! When lazy_tables=True the column structure is
migrated only when the table is built. Duh! I switched lazy_tables=False
and it migrated table 2 as you experienced.
Whew! I thought I was going crazy(er) for awhile!
-- Joe B.
On Wednesday, December 5, 2012 12:25:51 PM UTC-8, Niphlod wrote:
>
> thx. Just checked with stable and development, columns get migrated and a
> costraint is applied both to the parent and the child table
>
> On Wednesday, December 5, 2012 7:58:30 PM UTC+1, Joe Barnhart wrote:
>>
>> Ok, here is the setup. I have a table defined:
>>
>>
>> db.define_table("xxxxxxx",
>> Field("lastname","string",length=50,label="Last name",requires=
>> IS_NOT_EMPTY() ),
>> Field("firstname","string",length=50,label="First name",requires=
>> IS_NOT_EMPTY() ),
>> Field("middlename","string",length=50,label="Middle name" ),
>> Field("prefname","string",length=50,label="Nickname"),
>> Field("birth","date",label="Birth date",requires=IS_DATE()),
>> Field("ussnum","string",length=14,unique=True),
>> . . .
>>
>>
>>
>> This table is used in a later table definition...
>>
>>
>> db.define_table("yyyyyyy", db.xxxxxxx,
>> Field("regstate","string",length=10,label="Registration state",
>> readable=False,writable=False),
>> Field("processdate","date",label="Process date",readable=False,
>> writable=False),
>> . . .
>>
>>
>> I added the "unique=True" constraint to the column highlighted in table
>> xxxxxxx and then opened a page to cause the web2py table migration to take
>> place. I examined both table xxxxxxx and yyyyyyy with the Postgres tools
>> and found that table xxxxxxx had the column constraint added but table
>> yyyyyyy did not.
>>
>> -- Joe B.
>>
>>
>>
>> On Wednesday, December 5, 2012 3:20:55 AM UTC-8, Niphlod wrote:
>>>
>>> uhm: are you sure that adding unique=True gets the created index also in
>>> the parent table ? I think that the unique is enforced only on creation and
>>> not in migration (but the requires=IS_IN_DB() gets added anyway). In any
>>> case, what are you observing? (in other words, post a model and a
>>> controller to reproduce the issue)
>>>
>>> On Wednesday, December 5, 2012 12:08:03 PM UTC+1, Joe Barnhart wrote:
>>>>
>>>> This is probably old news, but I noticed this evening that altering a
>>>> table which is used as a "parent" by another does not cause its child
>>>> table
>>>> to be altered.
>>>>
>>>> I have a table which I added a "unique=True" constraint on this evening
>>>> and its child table did not get the added constraint when web2py did its
>>>> migration.
>>>>
>>>> (I admit to being lazy and not searching to see if this has been
>>>> reported before. Google groups are pretty hard to search for something
>>>> this specific.)
>>>>
>>>> -- Joe B.
>>>>
>>>>
--