Version 16 (modified by 18 years ago) ( diff ) | ,
---|
Database Backend
Initially, Trac only supported SQLite for its database backend. Postgresql support has been added as of Trac 0.9.
Since milestone:0.10, Trac offers an easily extensible layer for Database support (see trac.db.api).
The existing backends have been refactored and integrated in this layer. There's currently bundled support for:
- SQLite, using PySqlite
- PostgreSQL, using a variety of bindings (psycopg1, psycopg2, or pyPgSQL) (see #126 for historical notes)
There's some work in progress for the following:
Backend Specific Installation Instructions
Postgresql
- Have a working copy of Postgresql
- Get the proper database driver for Python (see above)
- Create a database for your Trac environment
% createdb dbname
- Run trac-admin to create a new Trac environment. When prompted for a Database connection string, use:
postgres://user:pass@localhost:5432/dbname
See also #2441, which discusses the process of migration from SQLite to Postgresql.
MySQL
MySQL is only experimentally supported with the patch attached to ticket #986. It also has several limitations.
- Have a working copy of MySQL version 4.1.12 or greater.
- MySQLdb - Python database driver for MySQL
- Create a database and user for your Trac environment
% mysqladmin create dbname % mysql > grant all privileges on dbname.* to dbuser identified by 'dbpass'; > quit
- Run trac-admin to create a new Trac environment. When prompted for a database connection string, use:
mysql://dbuser:dbpass@host:port/dbname
- or
mysql://dbuser:dbpass@host/dbname
Alternative Ideas for Database Independence
Object-Relational Mapper
An ORM could be used to provide a unified object interface to different RDBMS:
- some people have been talking about using SQLObject to accomplish this goal of database independence.
- Modeling Another, more advanced (and more complex) OR-Mapper.
Comparisions between both and more info on Python ORMs:
- http://toulouse.amber.org/archives/2003/04/21/evaluating_objectrelational_migration.html
- http://google.com/search?q=SQLObject+modeling
Store Tickets and Wiki pages directly in the Subversion repository
A compelling idea with many advantages. A page advocating this plan is TighterSubversionIntegration. There has also been a discussion on the Trac mailing list. All arguments from this discussion are summarized on the page WhySQLite.
Other Alternatives
- http://wiki.w4py.org/databaseintegration.html
- http://adodb.sourceforge.net - the fast ADODB db abstraction layer (version available for python)