Thanks for the replies.
I deleted the tables themselves--not in app/databases but from the
mysql dir where they are kept. I then use phpmyadmin to create an
empty d-b, as required when using mysql. (Yes, I read the db chapter
on the web2py book.)
I don't believe you are seeing a period in the db name; that is the
path to a table.
I believe this problem had some bizarre association with corruption in
the controller.
Here is the model file:
# pyjokes
# -*- coding: utf-8 -*-
jodb = DAL('mysql://root:mypwdfoo@localhost/jodb') #not the actual
password!
from gluon.tools import *
auth = Auth(jodb)
auth.define_tables()
crud = Crud(jodb)
## configure email
mail=auth.settings.mailer
mail.settings.server = 'logging' or 'smtp.gmail.com:587'
mail.settings.sender = '[email protected]'
mail.settings.login = 'username:password'
## configure auth policy
auth.settings.registration_requires_verification = False
auth.settings.registration_requires_approval = False
auth.settings.reset_password_requires_verification = False
## if you need to use OpenID, Facebook, MySpace, Twitter, Linkedin,
etc.
## register with janrain.com, write your domain:api_key in private/
janrain.key
from gluon.contrib.login_methods.rpx_account import use_janrain
use_janrain(auth,filename='private/janrain.key')
#########################################################################
## Define your tables below (or better in another model file) for
example
##
## >>> db.define_table('mytable',Field('myfield','string'))
##
## Fields can be
'string','text','password','integer','double','boolean'
## 'date','time','datetime','blob','upload', 'reference
TABLENAME'
## There is an implicit 'id integer autoincrement' field
## Consult manual for more options, validators, etc.
##
## More API examples for controllers:
##
## >>> db.mytable.insert(myfield='value')
## >>> rows=db(db.mytable.myfield=='value').select(db.mytable.ALL)
## >>> for row in rows: print row.id, row.myfield
#########################################################################
jodb.define_table('joke',
Field('joketext', 'text',length=2048),
Field('created_on', 'datetime', default=request.now),
Field('created_by', jodb.auth_user, default=auth.user_id))
jodb.define_table('category',
Field('name', 'text'))
jodb.define_table('joke_category',
Field('joke_id', 'integer'),
Field('category_id', 'integer'))
jodb.category.name.requires = IS_NOT_EMPTY()
jodb.joke.joketext.requires = IS_NOT_EMPTY()
# jodb.joke_category.requires = IS_IN_DB(jodb,jodb.joke.id) #this
didn't work for some reason