I'm working on migrating an installation from SQLite to PostgreSQL,
but the sqlite2pg script seems to fail, even with all the pre-
requisite packages installed:
ii python-psycopg2
2.0.13-2ubuntu2 Python module for PostgreSQL
ii python-psycopg2-dbg 2.0.13-2ubuntu2
Python module for PostgreSQL (debug extension)
ii python-psycopg2-testsuite 2.0.13-2ubuntu2
Python module for PostgreSQL
ii python
2.6.5-0ubuntu1 An interactive high-level object-
oriented language (default version)
ii postgresql-9.0
9.0.4-1~lucid1 object-relational SQL database,
version 9.0 server
ii postgresql-client-9.0
9.0.4-1~lucid1 front-end programs for PostgreSQL
9.0
root@host:~# ./sqlite2pg.py -e /path/to/trac -p 'postgres://
user:pass@localhost:5432/trac'
Traceback (most recent call last):
File "./sqlite2pg.py", line 335, in <module>
sys.exit(main(sys.argv[1:]))
File "./sqlite2pg.py", line 331, in main
Main(opts)
File "./sqlite2pg.py", line 244, in Main
pgenv = getPostgreSQLEnvironment(opts)
File "./sqlite2pg.py", line 209, in getPostgreSQLEnvironment
cnx = env.get_db_cnx()
File "/usr/lib/python2.6/dist-packages/trac/env.py", line 285, in
get_db_cnx
return DatabaseManager(self).get_connection()
File "/usr/lib/python2.6/dist-packages/trac/db/api.py", line 90, in
get_connection
connector, args = self._get_connector()
File "/usr/lib/python2.6/dist-packages/trac/db/api.py", line 131, in
_get_connector
raise TracError('Unsupported database type "%s"' % scheme)
trac.core.TracError: Unsupported database type "postgres"
I know that the PG backend is supported, because the
TracEnvironment#DatabaseConnectionStrings wiki page says so (this is
version 0.11.7), and all of the necessary files exist underneath
$PYTHONPATH (e.g., postgres_backend.py), so I'm a little confused as
to what the problem is. If it helps, the relevant part of
_get_connector is:
def _get_connector(self): ### FIXME: Make it public?
scheme, args = _parse_db_str(self.connection_uri)
candidates = [
(priority, connector)
for connector in self.connectors
for scheme_, priority in connector.get_supported_schemes()
if scheme_ == scheme
]
if not candidates:
raise TracError('Unsupported database type "%s"' % scheme)
Also, the connectors are defined like so in the DatabaseManager class:
class DatabaseManager(Component):
connectors = ExtensionPoint(IDatabaseConnector)
The IDatabaseConnector class is what has the get_connection method,
and in postgres_backend.py, I can see that the PostgreSQLConnector
class implements IDatabaseConnector:
class PostgreSQLConnector(Component):
implements(IDatabaseConnector)
So, the error provided doesn't make a whole lot of sense to me. I
would tend to think it's an installation-specific problem (e.g.,
something nothing being in $PYTHONPATH), but I don't see evidence of
that here. Any help is most appreciated, and more detail can be
provided if requested.
Cheers,
Ryan
--
You received this message because you are subscribed to the Google Groups "Trac
Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/trac-users?hl=en.