Have a look with pgAdmin, also you should try the new stable to see if your
problem is gone, we are now at 2.2.1

Richard

On Wed, Oct 24, 2012 at 9:53 AM, Cliff Kachinske <[email protected]> wrote:

> Do you mean after the step where I edited the data?  There was only one
> row.  I edited it manually and I could see the change in the appadmin table
> view, so I conclude the change was committed.
>
> No data was lost as far as I can tell.
>
> I didn't look at the backend with pgAdmin, though.
>
> On Wednesday, October 24, 2012 9:23:14 AM UTC-4, Richard wrote:
>>
>> Did you have a look at the backend with pgAdmin for ex`
>> Richard
>>
>>
>> On Wed, Oct 24, 2012 at 8:48 AM, Cliff Kachinske <[email protected]>wrote:
>>
>>> System: Ubuntu 12.4 LTS, Web2py 2.0.9, Postgres 9, psycopg2
>>>
>>> In the model, start with a table like this:
>>>
>>> db.define_table('subject_**revisions',
>>>         Field('subject_id', 'reference subjects',
>>>             readable=False, writable=False,),
>>>         Field('revision', length=32),
>>>         Field('effective_date', 'date', requires=IS_EMPTY_OR(IS_DATE()**
>>> )),
>>>         )
>>>
>>> We are going to attempt to change revision to a required integer.
>>>
>>> First, comment it out so Postgres drops the column.
>>> db.define_table('subject_**revisions',
>>>         Field('subject_id', 'reference subjects',
>>>             readable=False, writable=False,),
>>>         # Field('revision', length=32),
>>>         Field('effective_date', 'date', requires=IS_EMPTY_OR(IS_DATE()**
>>> )),
>>>         )
>>>
>>> Then put it back as an integer field.
>>> b.define_table('subject_**revisions',
>>>         Field('subject_id', 'reference subjects',
>>>             readable=False, writable=False,),
>>>         Field('revision', 'integer'),
>>>         Field('effective_date', 'date', requires=IS_EMPTY_OR(IS_DATE()**
>>> )),
>>>         )
>>>
>>> Now using the admin interface, make sure that all entries in the table
>>> have an integer value in the field.
>>>
>>> Make the field required.
>>> b.define_table('subject_**revisions',
>>>         Field('subject_id', 'reference subjects',
>>>             readable=False, writable=False,),
>>>         Field('revision', length=32, required=True),
>>>         Field('effective_date', 'date', requires=IS_EMPTY_OR(IS_DATE()**
>>> )),
>>>         )
>>>
>>> So far so good.  Refresh the admin interface and observe no errors.
>>>
>>> Now try to tell Postgres to not allow nulls.  Make this change to the
>>> field def:
>>>         Field('revision', length=32, required=True, notnull=True),
>>>
>>> Postgres chokes with this error:
>>>
>>> IntegrityError: column "revision__tmp" contains null values
>>>
>>>
>>> Remove the notnull constraint and attempt to refresh the admin interface.  
>>> Rocket will hang at this point.
>>>
>>>
>>>
>>>  --
>>>
>>>
>>>
>>>
>>
>>  --
>
>
>
>

-- 



Reply via email to