Modify ↓
Opened 14 years ago
Closed 12 years ago
#7441 closed defect (wontfix)
sqlite2pg dies with an SQL error
Reported by: | Joshua Kugler | Owned by: | John Hampton |
---|---|---|---|
Priority: | high | Component: | SqliteToPgScript |
Severity: | blocker | Keywords: | |
Cc: | Trac Release: | 0.11 |
Description
When trying to run sqlite2pg like so:
./sqlite2pg -e /path/to/trac -p postgres://trac:password@localhost/trac
I'm getting this error:
Traceback (most recent call last): File "./sqlite2pg", line 335, in <module> sys.exit(main(sys.argv[1:])) File "./sqlite2pg", line 331, in main Main(opts) File "./sqlite2pg", line 250, in Main rc = tmigration.migrateTable(tname) or rc File "./sqlite2pg", line 72, in migrateTable rc = self.default_copy(table) File "./sqlite2pg", line 93, in default_copy pgcur.execute(insert_into, row) File "/usr/lib/python2.6/dist-packages/trac/db/util.py", line 64, in execute return self.cursor.execute(sql_escape_percent(sql), args) File "/usr/lib/python2.6/dist-packages/trac/db/util.py", line 64, in execute return self.cursor.execute(sql_escape_percent(sql), args) psycopg2.InternalError: current transaction is aborted, commands ignored until end of transaction block
According to question "I receive the error current transaction is aborted, commands ignored until end of transaction block and can’t do anything else!" at http://initd.org/psycopg/docs/faq.html it does seem be an error in the SQL queries issued by sqlite2pg.
This is with Trac 0.11.7 on Ubuntu 10.04.
Attachments (0)
Change History (2)
comment:1 Changed 14 years ago by
comment:2 Changed 12 years ago by
Resolution: | → wontfix |
---|---|
Status: | new → closed |
This plugin is deprecated. See the TracMigratePlugin.
Note: See
TracTickets for help on using
tickets.
I found the problem. On line 77, in TableMigration.default_copy(), we have this:
So, what sqlite2pg tries to do is silence the error, and then report the duplicate row after the fact. In our case, the Integrity error was more values than columns (rogue plugin added a column to a core table), and thus after that error, it could not continue, thus aborted the transaction. However, even though the transaction was aborted, sqlite2pg continued to try to insert rows, thus the error in the original report.