5 | | An ORM could be used to provide a unified object interface to different RDBMS: |
6 | | * [http://modeling.sourceforge.net/ Modeling], which is another, more advanced OR-Mapper. |
7 | | * [http://adodb.sourceforge.net ADODB], the fast database abstraction layer with a version available for Python. |
8 | | * [http://www.sqlalchemy.org/ SQLAlchemy], which is also quite advanced, is discussed further on the SqlAlchemy page. The following plugins exist that implement querying the Trac database using SQLAlchemy: [th:SqlAlchemyQueryMacro] and [th:TracSqlAlchemyBridgeIntegration]. |
9 | | * Some people have been talking about using [http://sqlobject.org SQLObject] to accomplish this goal of database independence. |
| 5 | An ORM could be used to provide a unified object interface to different relational database management systems that Trac supports: |
| 6 | * [http://www.sqlalchemy.org/ SQLAlchemy], which is also quite advanced, is discussed further on the SqlAlchemy page. The following plugins exist that implement querying the Trac database using this library: |
| 7 | * [th:SqlAlchemyQueryMacro] |
| 8 | * [th:TracSqlAlchemyBridgeIntegration] |
| 9 | * [http://adodb.sourceforge.net ADODB], the fast database abstraction layer for use with Microsoft ADO with a [pypi:adodbapi version available for Python]. |
| 10 | * [http://sqlobject.org SQLObject] is a Python based library to accomplish the goal of database independence. |
| 11 | * [http://modeling.sourceforge.net/ Modeling] is another, more advanced OR-Mapper. |