Ok, now adding on to this situation.
district = db.define_table('district',
Field('districtId', 'id', readable=False),
Field('district', length=5, required=True, unique=True),
Field('districtNumber', 'integer', required=True,
unique=True, label='District Number'),
Field('name', length=50, required=True, unique=True),
Field('salesmanId', db.auth_user, required=True,
label='District Manager'),
Field('includeInArAging', 'boolean', required=True,
label='Include in A/R Aging'),
Field('regionNumber', 'integer', label='Region Number'),
Field('manager',
compute=lambda id: '%s - %s' % (id.district,
db.auth_user(id.salesmanId).firstLast)),
format='%(manager)s')
district.salesmanId.represent = db.auth_user.first_name
district.district.requires = [IS_NOT_EMPTY(),
IS_NOT_IN_DB(db, 'district.district'),
IS_UPPER()]
district.districtNumber.requires = [IS_NOT_EMPTY(),
IS_NOT_IN_DB(db, 'district.districtNumber')]
district.name.requires = [IS_NOT_EMPTY(),
IS_NOT_IN_DB(db, '
district.name')]
district.salesmanId.requires = IS_IN_DB(db, db.auth_user,
'%(lastFirst)s',
zero='.choose.')
district._plural = 'Districts'
On my test machine I used a MySQL database hosted on an ubuntu box.
On my production machine (where I ran the fake_migrate last week) I'm using the same setup. Looking in the databases directory for my app on each server I see that the field names are all lower case on my test machine, but mixed case on my production machine (where the fake_migrate was run). I've attached the two .table files. Is this an oversite on web2py's part or something I have setup wrong that has caused the case-confusion between my environments?