Thanks for the help.

On Tue, Aug 11, 2009 at 11:50 AM, mdipierro <mdipie...@cs.depaul.edu> wrote:

>
> mind that sqlite does not enforce field types (web2py does). This is a
> problem if you have already inserted records in the previous
> definition and then you changed it. In this case I suggest delete
> everything in the folder databases/.
>
> Massimo
>
> On Aug 11, 10:41 am, Don Lee <sam...@gmail.com> wrote:
> > Thanks, that got rid of my problem with a false value for the boolean.
> >
> > ====================================================================
> > # coding: utf8
> > # define a SQLite database
> > database=SQLDB("sqlite://database.db")
> >
> > # create a vendor table
> > database.define_table('vendor',
> >     database.Field('name', 'string', length=64, unique=True),
> >     database.Field('alias', 'string', length=16, unique=True),
> >     database.Field('url', 'string', length=128, unique=True),
> >     database.Field('logo', 'upload'),
> >     database.Field('active', 'boolean')
> >     )
> >
> > database.vendor.name.requires=[IS_NOT_EMPTY(),IS_NOT_IN_DB(database,
> > database.vendor.name)]
> > database.vendor.alias.requires=[IS_NOT_EMPTY(),IS_NOT_IN_DB(database,
> > database.vendor.name),IS_NOT_IN_DB(database, database.vendor.alias)]
> > database.vendor.url.requires=[IS_NOT_EMPTY()]
> > database.vendor.logo.requires=[IS_NOT_EMPTY()]
> > database.vendor.active.requires=[IS_NOT_EMPTY()]
> >
> > database.define_table('distro',
> >     database.Field('vendor_id', database.vendor),
> >     database.Field('name', 'string', length=64, unique=True),
> >     database.Field('alias', 'string', length=16, unique=True),
> >     database.Field('active', 'boolean')
> >     )
> >
> > database.distro.vendor_id.requires=IS_IN_DB(database,database.vendor.id
> > ,'%(name)s')
> > database.distro.name.requires=[IS_NOT_EMPTY()]
> >
> database.distro.alias.requires=[IS_NOT_EMPTY(),IS_NOT_IN_DB(database,database.distro.alias)]
> > database.distro.active.requires=[IS_NOT_EMPTY()]
> >
> > database.define_table('release',
> >     database.Field('distro_id', database.distro),
> >     database.Field('version', 'string', length=16, unique=True),
> >     database.Field('alias', 'string', length=16, unique=True),
> >     database.Field('active', 'boolean', default=True)
> >     )
> >
> > database.release.distro_id.requires=IS_IN_DB(database,database.distro.id
> > ,'%(name)s')
> > database.release.version.requires=[IS_NOT_EMPTY()]
> >
> database.release.alias.requires=[IS_NOT_EMPTY(),IS_NOT_IN_DB(database,database.release.alias)]
> > ====================================================================
> >
> > My the tables are still not being defined as i would expect.
> >
> > ====================================================================
> >
> > timestamp: 2009-08-10T11:15:24.393714
> > CREATE TABLE vendor(
> >     id INTEGER PRIMARY KEY AUTOINCREMENT,
> >     name CHAR(32),
> >     alias CHAR(32),
> >     url CHAR(32),
> >     logo CHAR(32),
> >     active CHAR(32)
> > );
> > success!
> > timestamp: 2009-08-10T11:15:24.411343
> > CREATE TABLE distro(
> >     id INTEGER PRIMARY KEY AUTOINCREMENT,
> >     vendor_id CHAR(32),
> >     name CHAR(32),
> >     alias CHAR(32),
> >     active CHAR(32)
> > );
> > success!
> > timestamp: 2009-08-10T11:15:24.423518
> > CREATE TABLE release(
> >     id INTEGER PRIMARY KEY AUTOINCREMENT,
> >     distro_id CHAR(32),
> >     version CHAR(32),
> >     alias CHAR(32),
> >     active CHAR(32)
> > );
> > success!
> > ====================================================================
> >
> > On Tue, Aug 11, 2009 at 10:00 AM, Don <sam...@gmail.com> wrote:
> >
> > > I have defined my model.
> >
> > > ====================================================
> > > # coding: utf8
> > > # define a SQLite database
> > > database=SQLDB("sqlite://database.db")
> >
> > > # create a vendor table
> > > database.define_table('vendor',
> > >    database.Field('name'),
> > >    database.Field('alias'),
> > >    database.Field('url'),
> > >    database.Field('logo'),
> > >    database.Field('active')
> > >    )
> >
> > > database.vendor.name.type='string'
> > > database.vendor.name.length=64
> > > database.vendor.name.unique=True
> > > database.vendor.name.requires=[IS_NOT_EMPTY(),IS_NOT_IN_DB(database,
> > > database.vendor.name)]
> >
> > > database.vendor.alias.type='string'
> > > database.vendor.alias.length=16
> > > database.vendor.alias.unique=True
> > > database.vendor.alias.requires=[IS_NOT_EMPTY(),IS_NOT_IN_DB(database,
> > > database.vendor.name),IS_NOT_IN_DB(database, database.vendor.alias)]
> >
> > > database.vendor.url.type='string'
> > > database.vendor.url.length=128
> > > database.vendor.url.requires=[IS_NOT_EMPTY()]
> >
> > > database.vendor.logo.type='upload'
> > > database.vendor.logo.requires=[IS_NOT_EMPTY()]
> >
> > > database.vendor.active.type='boolean'
> > > database.vendor.active.requires=[IS_NOT_EMPTY()]
> >
> > > database.define_table('distro',
> > >    database.Field('vendor_id'),
> > >    database.Field('name'),
> > >    database.Field('alias'),
> > >    database.Field('active')
> > >    )
> >
> > > database.distro.vendor_id.type='database.vendor'
> > > database.distro.vendor_id.requires=IS_IN_DB
> > > (database,database.vendor.id,'%(name)s')
> >
> > > database.distro.name.type='string'
> > > database.distro.name.length=64
> > > database.distro.name.unique=True
> > > database.distro.name.requires=[IS_NOT_EMPTY()]
> >
> > > database.distro.alias.type='string'
> > > database.distro.alias.length=16
> > > database.distro.alias.unique=True
> > > database.distro.alias.requires=[IS_NOT_EMPTY(),IS_NOT_IN_DB
> > > (database,database.distro.alias)]
> >
> > > database.distro.active.type='boolean'
> > > database.distro.active.requires=[IS_NOT_EMPTY()]
> >
> > > database.define_table('release',
> > >    database.Field('distro_id'),
> > >    database.Field('version'),
> > >    database.Field('alias'),
> > >    database.Field('active')
> > >    )
> >
> > > database.release.distro_id.type='database.distro'
> > > database.release.distro_id.requires=IS_IN_DB
> > > (database,database.distro.id,'%(name)s')
> >
> > > database.release.version.type='string'
> > > database.release.version.length=16
> > > database.release.version.unique=True
> > > database.release.version.requires=[IS_NOT_EMPTY()]
> >
> > > database.release.alias.type='string'
> > > database.release.alias.length=16
> > > database.release.alias.unique=True
> > > database.release.alias.requires=[IS_NOT_EMPTY(),IS_NOT_IN_DB
> > > (database,database.release.alias)]
> >
> > > database.release.active.type='boolean'
> > > database.release.active.default=True
> > > =========================================
> >
> > > When I look at sql.log I see
> >
> > > =========================================
> > > timestamp: 2009-08-10T11:15:24.393714
> > > CREATE TABLE vendor(
> > >    id INTEGER PRIMARY KEY AUTOINCREMENT,
> > >    name CHAR(32),
> > >    alias CHAR(32),
> > >    url CHAR(32),
> > >    logo CHAR(32),
> > >    active CHAR(32)
> > > );
> > > success!
> > > timestamp: 2009-08-10T11:15:24.411343
> > > CREATE TABLE distro(
> > >    id INTEGER PRIMARY KEY AUTOINCREMENT,
> > >    vendor_id CHAR(32),
> > >    name CHAR(32),
> > >    alias CHAR(32),
> > >    active CHAR(32)
> > > );
> > > success!
> > > timestamp: 2009-08-10T11:15:24.423518
> > > CREATE TABLE release(
> > >    id INTEGER PRIMARY KEY AUTOINCREMENT,
> > >    distro_id CHAR(32),
> > >    version CHAR(32),
> > >    alias CHAR(32),
> > >    active CHAR(32)
> > > );
> > > success!
> > > =========================================
> >
> > > Is it normal for my specifications to be ignored?  Also, via the
> > > database administration page, I can set the active field of a record
> > > to "True" but not "False".  If I try to change something to "False" I
> > > get "invalid length!".
> >
> > > What am I doing wrong?
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to