Modify

Opened 6 years ago

Closed 6 years ago

#2929 closed defect (fixed)

Fails to work with postgres database

Reported by: anonymous Owned by: peca
Priority: normal Component: TracDownloaderPlugin
Severity: major Keywords: postgreSQL TracDownloaderPlugin
Cc: Trac Release: 0.11

Description

Using postgres for the database, when the plugin is installed and the system is restarted, the system responds that trac-admin upgrade needs to be performed. When this is done, the following message is generated.

Command failed: current transactions is aborted, 
commands ignored until end of transaction block

It probably says someplace that the plugin only supports mySQL, but it escaped me. trac version 0.10.3, postgres version 8.1.11, python 2.4.4

Attachments (0)

Change History (5)

comment:1 Changed 6 years ago by peca

Hi, please set up logging to warning, try that failing udate again and then send me a log file. Without it I cannot do anything.

Tahnks!
Peca

comment:2 Changed 6 years ago by peca

Hi, please tell me if your problem persists. If so, please send me requested logs.

comment:3 Changed 6 years ago by Bas

After a 'trac-admin upgrade' (postgres 8.2)


execute "SELECT value FROM system WHERE name='database_version'"

execute "SELECT value FROM system WHERE name='database_version'"

execute "SELECT value FROM system WHERE name='discussion_version'"

execute "SELECT value FROM system WHERE name='discussion_version'"

execute 'SELECT 1 FROM downloader_category'

execute 'SELECT 1 FROM downloader_category'

execute "SELECT value FROM system WHERE name='database_version'"

execute "SELECT value FROM system WHERE name='database_version'"

execute "SELECT value FROM system WHERE name='discussion_version'"

execute "SELECT value FROM system WHERE name='discussion_version'"

execute 'SELECT 1 FROM downloader_category'

execute 'SELECT 1 FROM downloader_category'

execute 'CREATE TABLE downloader_category (\n id SERIAL PRIMARY KEY,\n name text,\n notes text,\n sort int,\n timestamp int,\n deleted int\n)'

execute 'CREATE TABLE downloader_category (\n id SERIAL PRIMARY KEY,\n name text,\n notes text,\n sort int,\n timestamp int,\n deleted int\n)'

Command failed: current transaction is aborted, commands ignored until end of transaction block


Also converting from sqlite to postgres gave troubles.

The "sort" column is defined as a integer, but a string is being inserted.


"CREATE TABLE downloader_category (

id integer PRIMARY KEY,

name text,

notes text,

sort integer,

timestamp integer,

deleted integer

);

INSERT INTO "downloader_category" VALUES(1,'Releases',,,1209464907.63672,NULL);"

comment:4 Changed 6 years ago by fykcee1@…

  • Keywords postgresSQL TracDownloaderPlugin added
  • Trac Release changed from 0.10 to 0.11

the same problem with trac 0.11.1:

Traceback (most recent call last):

File "/usr/bin/trac-admin", line 8, in <module>

load_entry_point('Trac==0.11.1', 'console_scripts', 'trac-admin')()

File "/usr/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/admin/console.py", line 1295, in run

return admin.onecmd(command)

File "/usr/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/admin/console.py", line 123, in onecmd

rv = cmd.Cmd.onecmd(self, line) or 0

File "/usr/lib/python2.5/cmd.py", line 219, in onecmd

return func(arg)

File "/usr/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/admin/console.py", line 1145, in do_upgrade

self.env.upgrade(backup=do_backup)

File "/usr/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/env.py", line 442, in upgrade

participant.upgrade_environment(db)

File "build/bdist.linux-mips64/egg/tracdownloader/admin.py", line 704, in upgrade_environment
File "build/bdist.linux-mips64/egg/tracdownloader/db.py", line 83, in upgrade_environment
File "/usr/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/db/util.py", line 51, in execute

return self.cursor.execute(sql)

File "/usr/lib/python2.5/site-packages/Trac-0.11.1-py2.5.egg/trac/db/util.py", line 51, in execute

return self.cursor.execute(sql)

psycopg2.InternalError: current transaction is aborted, commands ignored until end of transaction block

comment:5 Changed 6 years ago by fykcee1@…

  • Keywords postgreSQL added; postgresSQL removed
  • Resolution set to fixed
  • Status changed from new to closed

The db.py->DownloaderDB->environment_needs_upgrade:

try:

            cursor.execute("SELECT 1 FROM downloader_category")

        except:

            self.env.log.info("Downloader plug-in DB does not exist.")

            return True

when the Table doesn't exist, it will raise a ProgrammingError, and the "except ..." block suppresses it. When the backend database is postgreSQL, a ProgrammingError will leave the connection to the DB in an unusable state (connection.get_transaction_status () is 3)
see http://code.djangoproject.com/ticket/852

add this line in the exceptions handler should work:

cursor.connection.rollback ()

Add Comment

Modify Ticket

Action
as closed .
as The resolution will be set. Next status will be 'closed'.
to The owner will be changed from peca. Next status will be 'closed'.
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.