Modify

Opened 16 years ago

Closed 16 years ago

#2929 closed defect (fixed)

Fails to work with postgres database

Reported by: anonymous Owned by: Petr Škoda
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 16 years ago by Petr Škoda

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 16 years ago by Petr Škoda

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

comment:3 Changed 16 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 16 years ago by cee1

Keywords: postgresSQL TracDownloaderPlugin added
Trac Release: 0.100.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 16 years ago by cee1

Keywords: postgreSQL added; postgresSQL removed
Resolution: fixed
Status: newclosed

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 ()

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Petr Škoda.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


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

 
Note: See TracTickets for help on using tickets.