In a test function I set up some testing data in a postgresql database by 
first deleting my test user's data and then inserting from a dictionary:

        db(db.tag_records.name == user_login['id']).delete()
        db.commit()
        for tr in trecs:

            db.tag_records.insert(**tr)

When this hits the insert I consistently get the following error: 

    ProgrammingError: ('ERROR', '23505', 'duplicate key value violates 
unique constraint "idx_name_tag"')

I've reindexed the whole database but that doesn't seem to help. Strangely, 
it seems like this error comes up on the *second* run of the code. In other 
words, the first run through the test the rows are deleted and new rows 
inserted just fine. It's when the test function runs a second time (there 
are several sets of test data) that this error appears.

I've never run into a problem like this before, and I'm not very good with 
the internals of postgresql yet. So any help is greatly appreciated. 

The table definition looks like this:

db.define_table('tag_records',
                Field('name', db.auth_user, default=auth.user_id),
                Field('tag', db.tags),
                Field('times_right', 'double'),
                Field('times_wrong', 'double'),
                Field('tlast_wrong', 'datetime', default=dtnow),
                Field('tlast_right', 'datetime', default=dtnow),
                Field('in_path', db.paths),  # was path (reserved term)
                Field('step', db.steps),
                Field('secondary_right', 'list:string'),
                Field('uuid', length=64, default=lambda:str(uuid.uuid4())),
                Field('modified_on', 'datetime', default=request.now),
                )
db.tag_records.name.requires = IS_IN_DB(db, 'auth_user.id',
                                    db.auth_user._format)
db.tag_records.tag.requires = IS_IN_DB(db, 'tags.id', db.tags._format)
db.tag_records.step.requires = IS_IN_DB(db, 'steps.id', db.steps._format)
db.tag_records.in_path.requires = IS_IN_DB(db, 'paths.id', db.paths._format)



-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to