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