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.
>>
>>
--