Edgewall Software

Ticket #1874 (closed enhancement: wontfix)

Opened 3 years ago

Last modified 14 months ago

Using Oracle instead of PySQlite

Reported by: vinodbabumv@… Owned by: jonas
Priority: normal Milestone:
Component: general Version: 0.8.4
Severity: normal Keywords: oracle
Cc: sekhargs@…, ccidral.newsbox@…

Description

We are trying out to implement Trac for CM. Is there any way to use Oracle as back end instead of PySqlite. If there is any configuration change to be done please let me know.

Attachments

Change History

Changed 3 years ago by anonymous

You might want to look at how PostgreSQL support is done. Trac appears to be using psycopg driver, but that's all I know.

Changed 3 years ago by Rede

  • priority changed from high to normal
  • type changed from defect to enhancement
  • component changed from tracd to general
  • milestone 0.8.3 deleted

I tried to write Oracle backend but I run in several serious issues and decided to cease my efforts.

  • Oracle is very picky about field types in join queries. Specially it is big problem with CLOB and non CLOB fields.
  • Oracle really has not decent equivalent to "TEXT" fieldtype in Oracle you have "CLOB" but using CLOB is really PITA.
  • Oracle doesn't support empty strings. It translates empty string to NULL which makes problems in some queries. You cant do SELECT * FROM FOOBAR WHERE MYTEXTFIELD = '' because Oracle translates where clause to WHERE MYTEXTFIELD = NULL and all you know how true that is.

Unless you can convice Oracle to provide decent long-textfield support I really doubt that we'll se Oracle as direct backend to Trac.

But there is workaround: You can use Oracle Heterogenous Services or Oracle Transparent Gateways. I've user first one few times to read Excel data via ODBC. Works great. This would work so that you setup, i.e. ODBC driver to access Trac DB (postgre or sqlite I think both has ODBC driver available) and then setup Oracle to read Trac db. Now you can access your Trac data from Oracle.

Changed 3 years ago by phoenix@…

Hi! We'd love Oracle as a backend, as we have all other databases in there, only the Trac DB missing... Is there any advance on this topic?

Changed 3 years ago by anonymous

which oracle version did you try?

Changed 3 years ago by ccidral.newsbox@…

  • cc ccidral.newsbox@… added

Is there any hope to get this implementation done given all obstacles provided by the Oracle SGBD stated in the comment made by Rede?

Changed 2 years ago by jtiai

I might give a second shot with this new database backend since it would enable to do lot of things without hacking Trac source itself and due the fact that there is this new Oracle XE that can be used without any fees.

It doesn't remove problems but might provide workaround.

Changed 2 years ago by mgood

  • status changed from new to closed
  • resolution set to wontfix

I am working on removing Trac's custom DB-abstraction layer in favor of SQLAlchemy which supports additional databases including Oracle. As Rede mentioned, Oracle has a number of issues that make it very difficult to integrate with Trac's database layer. Until we have a more advanced database layer such as SQLAlchemy we won't be able to support Oracle. This is being worked on in /sandbox/sqlalchemy

Changed 14 months ago by vintiverma@…

Any update on TRAC's support for Oracle as back end. Have changes been completed in the database layer to support Oracle.

Add/Change #1874 (Using Oracle instead of PySQlite)

Author



Change Properties
<Author field>
Action
as closed
Next status will be 'reopened'
to The owner will change from jonas. Next status will be 'closed'
 
Note: See TracTickets for help on using tickets.