I've figured out that if I patch those plugins (e.g. mastertickets) to call db.commit() (and some places calling rollback) after and insert/updates (typically in the plugins api.py), then the plugin will upgrade correctly.
I've searched the mailing list and bugs, and can not find anyone else running into a similar problem, so I am assuming I have done something wrong, or have not configured postgres correctly for trac. I am new to postgres, though have plenty of mysql/mssql/sqlite experience. The postgres install is 100% default, I've simply created a trac user and trac database, and used the postgres connect url in trac.ini. The lack of others may be due to the small number of people running PostgreSQL and masterticks both. I think the key question is how the python db interface handles transactions. The pg way seems to be to live in a transaction world, and other databases may have more of an auto-commit preference. It certainly seems possible that a lot of plugins have been sloppy about commit (does sqlite3 not require commiting, or not support transactions?) - I wouldn't rush to the conclusion that you are doing something wrong.
pgpGppvbbqhL1.pgp
Description: PGP signature
