Time permitting ... On Wednesday, October 24, 2012 10:20:13 AM UTC-4, Richard wrote: > > 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]<javascript:> > > 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. >>>> >>>> >>>> >>>> -- >>>> >>>> >>>> >>>> >>> >>> -- >> >> >> >> > >
--

